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