c++中的构造函数

子类不会继承父类的构造方法

 

子类创建对象时,先执行父类无参的构造方法,然后执行子类的构造方法,如果父类只有有参数的构造方法,则子类必须显示调用此带参构造方法

 

继承构造函数不会继承参数的默认值

 

 

 

 

 

 

struct A
{
  A(int i) {}
  A(double d,int i){}
  A(float f,int i,const char* c){}
  //...等等系列的构造函数版本号
};
struct B:A
{
  B(int i):A(i){}
  B(double d,int i):A(d,i){}
  B(folat f,int i,const char* c):A(f,i,e){}     A(f,i,e) 是实参     
  //......等等好多个和基类构造函数相应的构造函数
};







Son(string name, char sex, int age, int height, int tall) :Parent(name, sex, age)
{
		this->height = height;
		this->tall = tall;
}




struct A
{
  A(int i) {}
  A(double d,int i){}
  A(float f,int i,const char* c){}
  //...等等系列的构造函数版本号
};
struct B:A
{
  using A::A;
  //关于基类各构造函数的继承一句话搞定
  //......
};
当使用using语句继承基类构造函数时。派生类无法对类自身定义的新的类成员进行初始化,我们可使用类成员的初始化表达式,为派生类成员设定一个默认初始值



struct A
{
    A(int){}
};

struct B
{
    B(int){}
};

struct C:A,B
{
    using A::A;
    using B::B;
    C(int i):A(i),B(i) {}
};

A 和B 的构造函数会导致C 中重复定义相同类型的继承构造函数。
解决方法是让继承类进行显示定义构造函数。


对于继承构造函数来说,參数的默认值是不会被继承的

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值