c子类构造函数初始化父类成员_C++日志(三十二)类继承时复制构造函数

本文探讨了C++中复制构造函数的作用,特别是在类继承时的应用。子类的复制构造函数会按照继承顺序调用父类的复制构造函数,然后执行子类自身的构造代码。通过示例展示了如何在子类中初始化父类成员。
摘要由CSDN通过智能技术生成

0411103ca8e6afcf7030ec3189a25050.png

C++中,复制构造函数主要有三个作用:用类的一个对象初始化另一个对象、函数的形参和实参结合、函数返回对象。在继承时,子类的复制构造函数语法如下:

子类::子类(const 子类 &子类引用名):父类1(子类引用名),父类2(子类引用名)...

其中,“父类n”表示子类所继承的父类,所有的父类都使用“子类引用”作为父类复制构造函数的参数。因为,根据“类型兼容规则”有“子类对象可以隐含的转换为父类引用”。

例子:

下面的例子中,类X和类Y都有自己的复制构造函数,类Point继承了X和Y,Point的复制构造函数用于自身复制,并将引用传递给其父类:

class X {
    
public:
	X() {};
	X(const X &ref) {
     printf("copy X!!! n"); }
};

class Y {
    
public:
	Y() {};
	Y(const Y &ref) {
     printf("copy Y!!! n"); }
};

class Point: public X, public Y {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值