class B;
class A {
public:
A () {
B* pb = new B;
printf ("A()");
};
~A () {
printf ("~A()");
};
};
class B {
public:
B () {
printf ("B()");
};
~B () {
printf ("~B()");
};
};
int main(int argc, char* argv[])
{
printf("Hello World!\n");
return 0;
}
以上代码会报:
error C2512: 'B' : no appropriate default constructor available
因为A的构造函数是内联函数,编译器展开的时候,没有发现B的构造函数,所以报错了。