我已经包含适当C++类的实例化问题
头文件, 部首加尔
,但我不能实例化特定类
得到错误
error C2065: 'ClassName' : undeclared identifier
Sample Code
Class A{
//instantiate class B
}
Class B {
//need to instantiate Class A
}
我已经包含适当C++类的实例化问题
头文件, 部首加尔
,但我不能实例化特定类
得到错误
error C2065: 'ClassName' : undeclared identifier
Sample Code
Class A{
//instantiate class B
}
Class B {
//need to instantiate Class A
}
因为我们还没有发布对我们有什么真正的代码实际上使用的,我带你去一个猜测,你的代码实际上是这样的:
啊:
#ifndef HEADER_A
#define HEADER_A
#include "B.h"
class A {
private:
B someMember;
};
了Bh :
#ifndef HEADER_B
#define HEADER_B
#include "A.h"
class B {
public:
doSomething(A param);
};
B.cpp:
#include "B.h"
#include "A.h"
void B::doSomething(A param) { }
正如Flinsch所说,你需要有前向声明来避免包含排序问题。最简单的方法是在.h文件中删除循环包含,并将正向声明(class B;
和class A;
并入A.h和B.h)。
顺便说一句。在类定义结束时,您没有;
。
谢谢,但它完成:)它只是描述一个场景 – Sudantha 2010-10-26 11:34:28
不,你描述没有情况,因为没有真正的代码,没有实例写入。你的问题对我们来说只是一个模糊的笑话。 – 2010-10-26 11:38:06
我可以实例化其他类 – Sudantha 2010-10-26 11:23:42
你会粘贴任何代码吗?无法工作的最小完整示例 – 2010-10-26 11:25:00
无代码,无Cookie。 – sbi 2010-10-26 11:26:55