A文件中定义classA
B文件中定义classB
B的头文件不包含A,CPP文件包含A
class B
{
class A;
B();
~B();
A *m_pA;
}
B.CPP
#INCLUDE<A.H>
B::B()
{
m_pA=new A;
//此处会提示A的构造函数未定义
}
void fun()
{
A* a=new A;
//此处OK
}
如果把B头文件的class A放到class B外面,就OK。
估计是因为这种情况在class B作用域中未定义出class A的实现,但又认为此处的A类一定要在B作用域中找,所以才会报错