找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1958|回复: 0
收起左侧

对构造及复制控制的继承理解

[复制链接]
ID:3721 发表于 2015-1-5 14:34 | 显示全部楼层 |阅读模式
派生类未定义自己的构造函数,而是用默认构造函数,则构造时会自动调用显式声明的基类默认构造函数或者无须赋参数(全部参数都有缺省参数)的构造函数(这两个函数本身便不能共存),若没有上述函数且有自己声明的构造函数(此类函数因为需要参数所以不能被成功调用)则报错,若基类无显式声明的构造函数则调用隐藏的自动生成的默认构造函数。

派生类定义自己的构造函数,若不显式调用基类构造函数,则构造时会自动调用显式声明的基类默认构造函数或者无须赋参数(全部参数都有缺省参数)的构造函数(这两个函数本身便不能共存),若没有上述函数且有自己声明的构造函数(此类函数因为需要参数所以不能撤成功调用)则报错,若基类无显式声明的构造函数则调用隐藏的自动生成的默认构造函数。

注意:默认调用基类构造函数只对直接基类有效!

派生类未显式定义复制构造函数(即使用隐藏的默认复制构造函数),则派生类复制构造时将调用基类复制构造函数,若基类无显式定义的复制构造函数则调用隐藏的默认复制构造函数。

派生类显式定义复制构造函数,若不显式调用基类复制构造函数,则不论基类是否显示定义了复制构造函数,派生类只执行自己的复制构造函数。

派生类未显示定义赋值函数(即使用隐藏的默认赋值函数),则派生类赋值时将自动调用基类赋值函数,若基类无显式定义的赋值函数则调用隐藏的默认赋值函数。

派生类显示定义赋值函数,若不显示调用基类赋值函数,则不论基类是否显示定义了赋值函数,派生类只执行自己的赋值函数。

调用基类复制构造使用初始化列表,调用基类赋值操作调用类似AAA::operator=(bbb)。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表