继承时的覆盖问题
class A
{
public:
int ival;
A()
{
ival = 1;
}
void print(){
cout << ival << endl;
}
};
class Beta : public A
{
public:
int ival;
Beta()
{
ival = 2;
}
};
void main()
{
Beta b;
b.print();
cout << b.ival << endl;
getchar();
}
程序的输出结果为:1 2。子类中的ival覆盖掉了父类中同名的成员变量,但是子类继承了父类的print函数,此函数打印的应该是父类中被覆盖的ival的值,也就是1。在执行子类的构造函数体前,先调用父类的构造函数。
浙公网安备 33010602011771号