【发布时间】:2012-09-06 01:28:22
【问题描述】:
考虑这些 c++ 片段:
foo.h:
class foo
{
bar myobj;
};
bar.h:
class bar
{
foo *yourobj;
};
其他文件:
#include "foo.h" //because foo.h is included first bar will not be defined in foo.h
#include "bar.h"
foo container;
bar blah;
我知道我没有费心去写构造函数之类的东西,但你明白了。有谁知道解决这种情况的方法吗?
【问题讨论】:
-
在继续之前,请尝试计算
sizeof(foo)。 -
指针是您的解决方案。
-
基本上他们的意思是,不可能在 bar 中同时有一个 foo 和一个 bar 在 foo 中,所以你需要重新考虑你真正想要什么。
-
每个 foo 里面都有一个 bar。每个酒吧里都有一个 foo。哦哦。
-
您可能需要重新考虑您的类模式,因为对象之间不应该相互需要,否则会造成无限的对象创建循环