Я пытаюсь создать несколько классов, ссылаясь на первый класс.Класс создания неполадок со ссылкой на другой класс
Компилятор дает мне сообщение об ошибке: error: 'classData' не является типом.
ClassData имеет некоторые сложные структуры данных и имеет кучу доступа к этим данным. ClassFunc имеет множество функций, которые работают с этими данными. Затем класс Work выполняет кучу работы и иногда требует вызова функции в ClassB, которая будет выполнять некоторую работу над данными в ClassData.
Ниже приведен код: правый
/////////////////////////
//ClassData.h
class ClassData {
public:
ClassData(){
// initialize a bunch of stuff
};
virtual ~ClassData(){};
}
/////////////////////////
//ClassFunc.h
#include "ClassData.h"
class ClassFunc {
public:
ClassFunc(ClassData& in_classData) : classData(in_classData){};
virtual ~ClassFunc();
float updateEta(float deltaVJ, int column);
private:
ClassData& classData;
};
/////////////////////////
//ClassFunc.cpp
#include "ClassFunc.h"
float ClassFunc::updateEta(float a, int b){
float foo = 0.0
// Do a bunch of work to foo
return foo;
};
/////////////////////////
// Work.h
#include "ClassData.h"
#include "ClassFunc.h"
class Work{
public:
Work(ClassData& in_class) : classData(in_class){
// initialize some stuff
};
~Work(){};
float updateTheta(int a, float b, float c);
private:
ClassData& classData;
ClassFunc classFunc(classData); //// ERROR IS HERE
}
/////////////////////////
// Work.cpp
#include "Work.h"
float Work::updateTheta(int a, float b, float c){
// do some work first
double foo = classFunc.updateEta(d, e);
return foo
};
Вы пропустили точку с запятой после класса определения. Это ваш код активации? – jrok
ClassB (Class A & in_classA) -> У вас, кажется, есть дополнительное пространство «Класс A» против «ClassA» – Fred
Возможный дубликат [Правильный способ #include при наличии круговой зависимости?] (Http: // stackoverflow .com/questions/3901606/proper-way-to-include-when-there-a-circle-dependency) –