C++派生类构造函数基类的数据成员初始化
基类的数据成员为什要初始化啊?比喻classbase1{public:base1(inti){cout<<"constructbase1"<<endl;}}做基类,那初始...
基类的数据成员为什要初始化啊?比喻class base1 {
public:
base1(int i){ cout<<"construct base1"<<endl;}
}做基类,那初始化什么啊?
知道了,基类继承后,数据成员也被继承,在建立派生对像时,对对象初始化时,基类的数据也需初始化。。。。 展开
public:
base1(int i){ cout<<"construct base1"<<endl;}
}做基类,那初始化什么啊?
知道了,基类继承后,数据成员也被继承,在建立派生对像时,对对象初始化时,基类的数据也需初始化。。。。 展开
1个回答
展开全部
class base1{
public:
base1(int i){cout<<"construct base1"<<endl;}
private:
int love;
};//基类,所给的没有数据成员
class PaiSheng:public base1
{
public:
PaiSheng(int i):base1(i) //将基类数据成员用到派生类中
{ }
//基类和派生类本身就有联系,继承它的成员的话就不用在声明一个新的成员,是代码利用率高
};
void main()
{
PaiSheng love(4);
//因为派生类初始化是继承基类的构造函数,所以派生类初始化的结果是“construct base1”
}
public:
base1(int i){cout<<"construct base1"<<endl;}
private:
int love;
};//基类,所给的没有数据成员
class PaiSheng:public base1
{
public:
PaiSheng(int i):base1(i) //将基类数据成员用到派生类中
{ }
//基类和派生类本身就有联系,继承它的成员的话就不用在声明一个新的成员,是代码利用率高
};
void main()
{
PaiSheng love(4);
//因为派生类初始化是继承基类的构造函数,所以派生类初始化的结果是“construct base1”
}
追问
谢谢你的回答,,我还有些问题 我看书上说的是派生类不能继承基类的构造函数, PaiSheng(int i):base1(i) 这是有定义的构造函数啊,新定义的构造函数调用了基类的构造函数,----是不?最后一句话好像有误
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询