Ale*_*qué 2 c++ circular-dependency forward-declaration incomplete-type
你好,我在使用前向声明时遇到了麻烦.我无法访问转发的类函数,但我需要这样做.
这是我的Window.h:
#include "Tab.h" // Needed because Window will create new Tabs
class Window {
public:
...
void doSome();
};
Run Code Online (Sandbox Code Playgroud)
这是Tab.h:
class Window; // forward delcaration
class Tab {
public:
class Tab(Window *parent);
void callParentFunction();
private:
Window *m_parent;
};
Run Code Online (Sandbox Code Playgroud)
最后,Tab.cpp:
#include "Tab.h"
Tab::Tab(Window *parent) {
m_parent = parent;
}
Tab::callParentFunction() {
m_parent->doSome(); // Error
}
Run Code Online (Sandbox Code Playgroud)
编译器返回以下错误:无效使用不完整类型'struct Window'
如何知道它已经包含Tab.h来创建标签,我如何访问父节点的功能?如果我不能,你建议我做什么?
您需要Window类的定义才能调用
m_parent->doSome();
Run Code Online (Sandbox Code Playgroud)
因此,包括Window.h在Tab.cpp.
| 归档时间: |
|
| 查看次数: |
622 次 |
| 最近记录: |