- 前向声明
class A; //在c++中遇到右花括号完成类的定义
类的前向声明无法让编译器知道如何分配该类类型的内存。
- 存在相互依赖的类
如果存在遇到相互依赖的类定义的情况,如何声明:
1.成员函数使用依赖类的成员函数或生成了依赖类对象
//A.h
class B;
class A{
public:
public:
B test_A();
}
//B.h
class A;
class B{
A test_B();
}
//A.cpp
#include "A.h"
#include "B.h"
B A::test_A(){
....
}
//B.cpp
#include "A.h"
#include "B.h"
A B::test_B(){
...
}
类定义与类声明可以采取如上格式。
2.相互依赖类的定义中需各自定义依赖类类类型的数据成员
可将类类类型的数据成员定义为指针。