我是 C++ 新手,所以这个问题可能很基本:
我有两个类需要互相引用。每个都在自己的头文件中,#include 是另一个的头文件。当我尝试编译时,我收到其中一个类的错误“ISO C++ 禁止声明没有类型的‘Foo’”。如果我切换事物,以便首先解析相反的标头,我会得到与其他类相同的错误。
C++ 中是否可以有两个需要相互引用的类?
有关更多详细信息:我有一个“App”类和一个“Window”类。 App需要引用Window来制作窗口。 Window有一个回调App的按钮,所以需要App的引用。如果我不能让两个类相互引用,是否有更好的方法来实现这一点?
只要标头中没有实现依赖项,您就可以在头文件中使用前向声明来绕过循环依赖项。在 Window.h 中,添加以下行:
class App;
在 App.h 中,添加以下行:
class Window;
在类定义之前添加这些行。
然后在源文件中,包含实际类定义的标头。
如果您的类定义引用其他类的成员(例如,在内联中),则需要将它们移动到源文件(不再是内联)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)