C ++中的前向引用或声明
-
06-07-2019 - |
题
如何在C ++中转发引用/声明以避免循环头文件引用?
我在头文件中有#ifndef保护,但是内存告诉我我需要这个前向引用的东西 - 我之前用过<!> gt; <!> lt;但不记得是怎么回事。
解决方案
你预先宣布了这个课程而不包括它。例如:
//#include "Foo.h" // including Foo.h causes circular reference
class Foo;
class Bar
{
...
};
其他提示
我相信你所说的正确用语是<!> quot; forward declaration <!> quot;。 <!>“;前向引用<!>”;会有点混乱。
如果您拥有#ifndef警卫,则不会获得循环头文件引用。这才是重点。
前向引用用于避免#include(ing)仅由指针或引用使用的对象的头文件。但是,在这种情况下,您没有解决循环引用问题,您只是在练习良好的设计并将.h文件与其不需要知道的细节分离。
不隶属于 StackOverflow