因为文件的依赖关系,我们可能会在c++代码.hh上面加上需要使用类型的前置声明,比如A.hh:
class B;
class A{
B* b;
...
~A(){
delete B;
}
}
这个会报告incomplete,因为B只是前置声明,编译器不会理解delete B的含义,因此我们改成如下的方式,即前置声明只能使用指针或者引用,多的其他调用不可以。
//A.hh
class B;
class A{
B* b;
...
~A();
}
#include//A.cc A::~A(){ delete B; }



