您好,我在使用前向聲明時遇到了問題。我無法訪問轉發的類函數,但我需要這樣做。C++前向聲明和不完整類型
這是我在window.h:
#include "Tab.h" // Needed because Window will create new Tabs
class Window {
public:
...
void doSome();
};
這裏是Tab.h:
class Window; // forward delcaration
class Tab {
public:
class Tab(Window *parent);
void callParentFunction();
private:
Window *m_parent;
};
最後,Tab.cpp:
#include "Tab.h"
Tab::Tab(Window *parent) {
m_parent = parent;
}
Tab::callParentFunction() {
m_parent->doSome(); // Error
}
編譯器返回我以下錯誤: 無效使用不完整的類型'struct Window'
如何知道它已經包含Tab.h來創建標籤頁? 如果我不能,你建議我做什麼?
'#include Tab.h'是你的實際代碼嗎? –
你的意思是我犯了一個錯字嗎?應該是#包括「Tab.h」 –