在使用c++时,有两个类 class A、class B。在class A中有一个class B的成员变量,同样,在class B中有一个class A的成员变量,这时候,就需要用到c++的向前申明来解决类的相互引用。解决的准则如下:
A或者B任选一个采用头文件(A.h)引用另一头文件(B.h)的方式不变,而另外一方的头文件(B.h)中则在定义该类之前写一句class A;然后在B的cpp文件中引用A的头文件。
A.h
//保留A.h不变,使用#include的方式引入B
#include "B.h"
class A
{
B* b;
}
B.h
//在申明B之前,向前申明A
class A;
class B
{
A *a;
}
同时
B.cpp
//在B.cpp中要#include A,否则不能调用成员A的任何内容
#include "A.h"
B::sayHello{
}