#include<iostream.h>
class a
{public:
a(int i=10){x=i;cout<<"a:"<<x<<endl;}
int x;
};
class b:public a
b(int i):A(i){x=i;cout<<"b:"<<x<<", "<<a::x<<endl;}
private:
a A;
void main()
{b B(5);
}
答案:a:10
a:5
b:5,10
[解析]定义对象B,先调用基类构造函数,在b构造函数中使用的是A(i),注意大小写,不是a(i),也就是说调用基类的构造函数时没有实参值,所以采用默认值;在初始化类成员A,即A(i),i=5,所以输入为a:5;最后是b类的构造函数,x=5,来自基类x=10,输出b:5,10。
川公网安备 51010402001278号