Ant*_*ony 1 c++ compiler-errors circular-dependency
我有三个类:a TopClass包含一个BottomClass指针实例.该BottomClass包含一个指向HelperClass.该HelperClass保持一个指针TopClass.弹出循环依赖关系并且需要前向声明HelperClass.
所有这些都通过以下代码片段进行说明:
#include "BottomLevel.h"
namespace foo
{
class TopLevel
{
private:
BottomLevel* item;
};
}
Run Code Online (Sandbox Code Playgroud)
-
#include "HelperClass.h"
namespace foo
{
class BottomLevel
{
private:
HelperClass* item;
};
}
Run Code Online (Sandbox Code Playgroud)
-
class TopLevel; // forward declaration here
namespace foo
{
class HelperClass
{
public
HelperClass(TopLevel* item);
};
}
Run Code Online (Sandbox Code Playgroud)
尝试在实现文件中执行操作时会出现问题.如果我#include "TopClass.h"在cpp文件中,我会收到编译错误,指出"找不到重载的成员函数 - 使用未定义类型' TopLevel'"(ERRORS C2511和C2027).
然后,如果我不这样做,#include我仍然会留下C2027错误,因为我尝试使用前向声明的类型.
我只知道有一种方法可以解决这个问题,我相信我之前已经做过了,但我不能为我的生活记住我应该做的事情.有什么帮助吗?
| 归档时间: |
|
| 查看次数: |
2148 次 |
| 最近记录: |