两个类A,B,相互引用,如果互相包含彼此的头文件,造成无限包含,编译出错
对于类A,B,在类A的头文件中包含B的头文件与创建B的成员变量,而在B的头文件中,前向声明一个类A,并且定义一个指向A的指针pA成员变量,这样类B的头文件中就不需要包含A的头文件,因为它不需要知道类A的定义。但是需要类B的cpp文件中去包含A的头文件并对pA进行实例化操作。如果在cpp中忘记包含A的头文件,就会出现类的不完整定义错误
error: invalid use of incomplete type 'class xxx'
如果A和B相互引用,但是只在B的成员函数中需要使用到类A,只需要在类B的cpp文件中包含类A的头文件就可以了。就可以避免头文件重复包含
例子:
CA.H
#ifndef _CA_H
#define _CA_H
#