问题及答案:
class A
{
int m,n;
A(int a,int b){m=a;n=b;}
}
class B:public A
{
void func();
}
void B::func()
{
...
A(2,3); // 不可以这样写,因为在执行完 A(2,3) 后,会马上调用 ~A() 即析构函数,清理变量,所以 A 中 m n 仍然未定义
...
}
解决办法:
将 A 的成员变量,放在A成员函数 fun 中,在 B 的成员函数 func 中调用 fun,即可