2016-04-30 2 views
-3

Мой предыдущий пост уже помеченной как дублирование - https://stackoverflow.com/questions/36960042/lots-of-unreasonable-compiler-errors-cРазъяснение по круговой зависимостях

Ive пытался предложенные решения. Однако, когда форвард объявляет «курс курса», мой компилятор, похоже, не распознает класс в предыдущих файлах, заявив, что курс (класс) является неполным типом в каждом месте, указанном в «student.cpp».

Я пропустил пункт? как решить круговую зависимость в моем коде? (Код предыдущего сообщения).

"Курс" помечается как незавершенный в student.cpp

"student.h" -

#define _CRT_SECURE_NO_WARNINGS 
#pragma once 
#include <string> 
#include <iostream> 
#include <stdlib.h> 
using namespace std; 

class course; 
class student{ 
private: 
    string name; 
    int id; 
    string gender; 
    int age; 

public: 
    int amountofcourses; 
    student(); 
    ~student(); 

    course **courses; 
}; 

"student.cpp" -

#include "student.h" 
    student::student(){ 
    courses = NULL; 
    course *courses = new course; 
} 

"course.h" -

#include "student.h" 
#pragma once 

class course{ 

private: 
    string name; 
    int num; 
    int amountofstudents; 

public: 
    course(); 
    ~course(); 
+2

Пожалуйста, прекратите злоупотреблять этим сайтом. Вы ** должны ** читать [спрашивать]! – Amit

+0

Я не вижу проблемы. Не смог решить мою проблему в моем предыдущем посте, поэтому я просил разъяснений. – Akra

+1

Не размещайте код с другого вопроса. Отправьте код, который вы должны были разместить в другом вопросе: A [mcve]. Акцент на ** минимальный **. Кроме того, опишите шаги, которые вы пытались решить проблему, и как это получилось. – user2079303

ответ

1

Просто удалите #include "course.h" от student.h, где он вам не нужен, и он вызывает круговую зависимость и добавляет его в student.cpp, где вам это действительно нужно.

EDIT: Обратите внимание, что этот ответ был написан до того, как опубликованный код был отредактирован, чтобы соответствовать половине того, что я предлагаю здесь.

+0

Извините, я, кажется, скопировал это включение из моего последнего сообщения, я удалил его из кода и это (обновлено)) код - это то, о чем я действительно спрашиваю. Что касается вашего редактирования - это то, о чем я прокомментировал. – Akra

+0

«... и добавьте его в student.cpp, где вам это действительно нужно» –

+2

1. Создайте пример кода, который воспроизводит проблему. 2. Введите именно этот код. –

Смежные вопросы