1.C++类必须先定义,才能够实例化
2.两个类需要相互引用形成一个“环形”引用时,无法先定义使用。这时候需要前向声明
3.前向声明的类不能够实例化
参考代码:
A.h
#ifndef _A_H_
#define _A_H_
#include "B.h"
class A
{
public :
A(void);
~A(void);
B b_;
};
#endif //_A_H_
B.h
#ifndef _B_H_
#define _B_H_
class A; //前向声明
class B
{
public:
B(void);
~B(void);
void fun(A& a) //不能是实例化对象,只能是指针或引用
{
}
// A a_;
A* a_; //前向声明的类不能实例化对象
};
#endif //_B_H_