1

例如,我有一个 A 类防御

class A {
 ... 
 }

在啊

和 B 在 bh

class B {
 ... 
 }

在 ah 我需要#include "b.h",在 bh 我需要#include "a.h",但它是编译器的递归错误。

我可以在一个文件中用这样的预先防御来欺骗它

class A;
class B {
     ... 
     }
class A {
     ... 
     }

但为了清楚起见......我想把它们分开,我该怎么做?

4

1 回答 1

2

前向声明是要走的路:

//B.h
class A;
class B
{
};

//A.h
class B;
class A
{
};

请注意,如果您需要完整类型,即类型的数据成员AB相应的其他类需要(方法参数、返回类型、指针或引用将与不完整类型一起使用),这将不起作用。

于 2012-10-04T05:35:48.087 回答