#include <iostream.h>
class A
{int i;
public:
virtual void fun()=0;
A(int a)
{i=a;}
};
class B:public A
{int j;
void fun()
{cout<<"B::fun()\n"; }
B(int m,int n=0):A(m),j(n){}
void main()
{A *pa;
B b(7);
pa=&b;
}
答案:B(int m,int n=0):A(m),j(n){}因为基类是抽象类,不能被实例化,所以在派生类中不能调用初始化基类对象。所以B(int m,int n=0):A(m),j(n){}错误,删去A(m)。
[修改]B(int m,int n=0):j(n){}
川公网安备 51010402001278号