什么是c ++中的前向声明?

lit*_*tuk 10 c++ forward-declaration

这个答案说:

......最后,

typedef struct { ... } Foo;
Run Code Online (Sandbox Code Playgroud)

声明一个匿名结构并为其创建一个typedef.因此,使用此构造,它在标记名称空间中没有名称,只有typedef名称空间中的名称.这意味着它也无法向前宣布.如果要进行前向声明,则必须在标记名称空间中为其指定名称.

什么是前瞻性声明?

Fre*_*son 16

Chad给出了很好的字典定义.前向声明通常在C++中用于处理循环关系.例如:

class B; // Forward declaration

class A
{
    B* b;
};

class B
{
    A* a;
};
Run Code Online (Sandbox Code Playgroud)


Cha*_*dia 7

"在计算机编程中,前向声明是程序员尚未给出完整定义的标识符(表示类型,变量或函数等实体)的声明."

- 维基百科

  • 重言式不是答案:http://xkcd.com/703/ (4认同)