C ++中的前向引用或声明

时间:2008-10-08 17:29:19

标签: c++ syntax forward-declaration

如何在C ++中转发引用/声明以避免循环头文件引用?

我在头文件中有#ifndef保护,但是内存告诉我我需要这个前向引用的东西 - 我之前使用的><但不记得是怎么回事。

3 个答案:

答案 0 :(得分:15)

你预先宣布了这个课程而不包括它。例如:

//#include "Foo.h" // including Foo.h causes circular reference
class Foo;

class Bar
{
...
};

答案 1 :(得分:1)

我相信你所说的正确用语是“前瞻性声明”。 “前向引用”会有点令人困惑。

答案 2 :(得分:-2)

如果您拥有#ifndef警卫,则不会获得循环头文件引用。这才是重点。

前向引用用于避免#include(ing)仅由指针或引用使用的对象的头文件。但是,在这种情况下,您没有解决循环引用问题,您只是在练习良好的设计并将.h文件与其不需要知道的细节分离。