【发布时间】:2012-03-30 17:50:02
【问题描述】:
我正在尝试实例化一些类,并传递对第一个类的引用。
编译器给我一个错误说明:错误:'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
};
【问题讨论】:
-
您在类定义后缺少分号。这是你的实际代码吗?
-
ClassB(Class A& in_classA) --> "Class A" vs. "ClassA" 好像多了一个空格
-
别等了,这不是重复的,抱歉。我希望我可以取消投票关闭。
-
不是我的实际代码 - 在这里包含很长时间。我很可能在输入这个快速示例时打错了一两个字
标签: c++ instantiation