C++ 继承的构造与析构
来源:互联网 发布:ios 去掉数组小括号 编辑:程序博客网 时间:2024/06/06 02:05
继承的构造与析构
子类对象的构造
- 子类中可以定义构造函数
- 子类构造函数
- 必须对继承而来的成员进行初始化
- 直接通过
初始化列表
或者赋值的方式
进行初始 调用父类构造函数
进行初始化
- 直接通过
- 必须对继承而来的成员进行初始化
- 父类构造函数在子类中的调用方式
- 默认调用
- 适用于无参构造函数和使用默认参数的构造函数
- 显示调用
- 通过
初始化列表
进行调用 - 适用于所有父类构造函数
- 通过
- 默认调用
- 父类构造函数的调用
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
举个例子:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
运行结果如下:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- 构造规则
- 子类对象在创建时会首先调用
父类的构造函数
- 先执行父类构造函数再执行
子类的构造函数
- 父类构造函数可以被隐式调用或者显示调用
- 子类对象在创建时会首先调用
- 对象创建时构造函数的
调用顺序
- 调用
父类
的构造函数 - 调用
成员变量
的构造函数 - 调用
类自身
的构造函数 - 口诀:
先父母
,后客人
,再自己
- 调用
举个例子:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
运行结果如下:
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
子类对象的析构
析构函数
的调用顺序与构造函数相反- 执行
自身
的析构函数 - 执行
成员变量
的析构函数 - 执行
父类
的析构函数
- 执行
举个例子:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
执行结果如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
阅读全文
0 0
- [C++]继承与构造析构
- 多继承的构造与析构
- 继承的构造与析构
- c++继承的构造与析构
- 继承的构造与析构
- C++ 继承的构造与析构
- C++ 继承的构造与析构
- C++ 继承的构造与析构
- 继承中的构造和析构、继承与组合混搭下的构造和析构
- [c++]容器类。继承类的构造和析构
- 【Linux基础】多继承的构造与析构
- C++学习 继承的构造与析构
- c++学习笔记(11.继承的构造与析构)
- 【c++程序】继承的构造与析构
- 非继承的 构造函数 与 析构函数
- 继承与组合混搭的构造和析构
- dephi继承中的构造与析构
- 继承中的构造与析构
- C++/C 学习Note
- ArcGIS10:ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS
- Linux CentOS查看版本的命令
- 干货集中营 API 文档
- 不固定参数求和,arguments
- C++ 继承的构造与析构
- 视图、序列、索引
- NGUI学习笔记(二):UIWrapCotent实现循环滚动(优化排行榜等效果)
- JVM 类装载原理分析-ClassLoader原理分析
- ubuntu/var/log/下各个日志文件
- spring中的BeanFactory与ApplicationContext的作用和区别?
- 数据库-锁
- POJ 2598 Match Throwing Game 笔记
- 问题