我已經包含適當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