C++:51---继承中的构造函数、析构函数、拷贝控制一系列规则
一、继承中的构造函数
根据构造函数的执行流程我们知道:
派生类定义时,先执行基类的构造函数,再执行派生类的构造函数
拷贝构造函数与上面是相同的原理
二、继承中的析构函数
根据析构函数的执行流程我们知道:
派生类释放时,先执行派生类的析构函数,再执行基类的析构函数
二、继承中被删除的函数的语法
基类或派生类可以将其构造函数或者拷贝控制成员定义为删除的。此外,某些定义基类的方式也可能导致有的派生类成员成为被删除的函数。规则如下:
如果基类中的默认构造函数、拷贝构造函数、拷贝赋值运算符、或析构函数是被删除的或者是不可访问的,则派生类中对应的成员将是删除的,原因是编译器不能使用基类成员来执行派生类对象中属于基类的部分操作
如果在基类中有一个不可访问或删除掉的析构函数,则派生类中合成的默认和拷贝构造函数将是被删除的,因为编译器无法销毁派生类对象的基类部分
编译器不会合成一个删除掉的移动操作。当我们使用=default请求一个移动操作时,如果基类中的对应操作是删除的或不可访问的,那么派生类中该函数是被删除的,原因是派生类对象的基类部分不可移动。同样,如果基类的析构函数是删除或不可访问的,则派生类的移动构造函数也将是被删除的
演示案例
C++:51---继承中的构造函数、析构函数、拷贝控制一系列规则相关推荐
- C++:继承中的构造函数和析构函数
C++:继承中的构造函数和析构函数 1.继承中构造函数和析构函数调用顺序 a.调用父类构造函数: b.调用其他成员的构造函数: c.调用子类构造函数: d.析构调用顺序相反. #include < ...
- 7-15 单继承中的构造函数与析构函数 (10 分)
7-15 单继承中的构造函数与析构函数 (10 分 编写代码实现一个表示点的父类Dot和一个表示圆的子类Cir,求圆的面积. Dot类有两个private数据成员 float x,y; Cir类新增一 ...
- C++ Primer 5th笔记(chap 15 OOP)构造函数和拷贝控制
1. 虚析构函数 基类通常应该定义一个虚析构函数. class Quote {public:// virtual destructor needed if a base pointer pointin ...
- 【C++ Priemr | 15】构造函数与拷贝控制
继承的构造函数 1. 简介: 子类为完成基类初始化,在C++11之前,需要在初始化列表调用基类的构造函数,从而完成构造函数的传递.如果基类拥有多个构造函数,那么子类也需要实现多个与基类构造函数对应的构 ...
- 类继承中的构造函数与析构函数
构造函数初始化列表 子类的初始化列表,只能对子类的成员变量进行初始化 class Base{ public:int x; };class Derived : public Base { public: ...
- C++ 类中的 构造函数、拷贝构造函数、析构函数
一.构造函数 ① 概念 构造函数就是和类名一样,而且是没有返回值的函数.如下所示:class demo_class{public:demo_class();//构造函数 如果不指定属性,则默认为私有的 ...
- 单继承中的构造函数与析构函数
编写代码实现一个表示点的父类Dot和一个表示圆的子类Cir,求圆的面积. Dot类有两个private数据成员 float x,y; Cir类新增一个private的数据成员半径float r 和一个 ...
- PTA:单继承中的构造函数与析构函数(c++,继承)
编写代码实现一个表示点的父类Dot和一个表示圆的子类Cir,求圆的面积. Dot类有两个private数据成员 float x,y; Cir类新增一个private的数据成员半径float r 和一个 ...
- 继承中的构造函数问题
代码如下: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Teacher t1 = new Teacher("许大虾 ...
最新文章
- sourcetree和git同步分支
- OpenCV 4.5.2 发布
- 【面试题】Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?
- [转载]Windows Phone 系列- 本地数据存储
- 解决RHEL sendmail服务启动慢
- 信息系统项目管理师-项目沟通管理与干系人管理核心知识点思维脑图
- 【Demo 0116】堆的使用
- windows 8 远程桌面(RemoteFX )
- mysql recovery = 4_强制MySQL InnoDB恢复参数innodb_force_recovery
- JAVA中小细节(易忽视和易错点)
- myeclipse中svn图标状态(同步标记)不显示问题的解决方法
- 数据结构 《18》----RMQ 与 LCA 的等价性 (一)
- Xshell 和 Xftp 免费下载
- 安装新版的winetricks_20170506-最新WineQQ8.9.1安装教程和常见问题解决方法
- ERROR: canceling statement due to conflict with recovery
- 《漫画机器学习入门》总结
- 平面离散点集Delaunay三角化
- 爱可信携手Marvell展示爱可信Linux平台
- Verilog 实现伪随机数生成器(线性反馈移位寄存器)
- 你会微信小程序自定义底部导航栏吗?
热门文章
- aliyun centos6 安装mysql_阿里云CentOS6.8安装MySQL5.6
- 【转】Ubuntu 16.04 远程桌面
- 【转】深入理解Windows消息机制
- 【转】应用架构之道:分离业务逻辑和技术细节
- 第六节:WebApi的部署方式(自托管)
- [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类
- SharePoint安全 - SharePoint网站常用页面URL索引
- WinXP下替代IIS的新思路
- mysql数据库字符集设置_查看和设置MySQL数据库字符集
- 【BZOJ - 3036】绿豆蛙的归宿(概率DAG图dp,拓扑排序,概率dp,期望的线性性)