当前课程知识点:C++语言程序设计进阶 > 第七章 继承与派生 > 派生类的构造和析构 > 派生类的复制构造函数
编译器会在需要时生成一个隐含的复制构造函数;
先调用基类的复制构造函数;
再为派生类新增的成员执行复制。
一般都要为基类的复制构造函数传递参数。
复制构造函数只能接受一个参数,既用来初始化派生类定义的成员,也将被传递给基类的复制构造函数。
基类的复制构造函数形参类型是基类对象的引用,实参可以是派生类对象的引用
例如: C::C(const C &c1): B(c1) {…}
大家好
欢迎回来继续学习
C++语言程序设计
这一节呢
我们来学习
派生类的复制构造函数怎么写
复制构造函数
也是一种构造函数
当然它也是各司其职的
每个类的复制构造函数
负责自己类的
对象成员的复制构造
那么派生类的对象成员呢
包括了一部分
是从基类继承过来的
一部分是自己新定义的
那么要复制构造
派生类对象的时候
这个复制工作
也是分成两部分的
从基类继承过来的成员
它们的复制构造
由基类的复制构造函数完成
而派生类
自己新增的成员的复制构造呢
由派生类的复制构造函数
自己写功能完成
但是
这里也有个传参数的问题
那么如果我们
写一个简单的派生类
不定义复制构造函数的话
那怎么复制构造呢
当然编译器也会在需要的时候
生成一个隐含的复制构造函数
这个隐含的复制构造函数
它真是非常负责任的
它也是负责
先去调用基类的复制构造函数
再为派生类新增的成员进行复制
如果派生类
定义了复制构造函数的话呢
那当然你得负责
给基类的复制构造函数
传递参数
一般的构造函数
给基类的构造函数
传参数的时候
我们说
你就在自己的形参表里面
多列一些参数
要考虑到本类的成员初始化
用的参数
也要考虑到
给基类传递的参数
但是复制构造函数
它只能接受一个参数
这一个参数
既要用来初始化
派生类的成员
也要被传递给
基类的复制构造函数用
那怎么能够兼顾两头呢
我们想想
既然这个派生类对象
它可以充当基类的对象
派生类对象的引用
可以用来初始化
基类对象的引用
那么当然
我们就直接
将这个派生类构造函数的参数
这个派生类的引用传给基类
没有任何问题
-导学
--导学
-继承的基本概念和语法
-第七章 继承与派生--继承的基本概念和语法习题
-继承方式
-第七章 继承与派生--继承方式
-基类与派生类类型转换
-第七章 继承与派生--基类与派生类类型转换
-派生类的构造和析构
--派生类的构造函数
--派生类的析构函数
--第七章 继承与派生--派生类的构造和析构
-派生类成员的标识与访问
--虚基类
-第七章 继承与派生--派生类成员的标识与访问
-小结
--小结
-综合实例
--第七章综合实例
-实验七
--实验七
-导学
--导学
-第八章 多态性--导学
-运算符重载
--运算符重载的规则
-第八章 多态性--运算符重载
-虚函数
--虚函数
--虚析构函数
--虚表与动态绑定
-第八章 多态性--虚函数
-抽象类
--抽象类
--第八章 多态性--抽象类
-override与final
-第八章 多态性--override与final
-小结
--第八章小结
-综合实例
--第八章综合实例
-实验八
--实验八
- 第八章讲义
-导学
--导学
-模板
--函数模板
--类模板
-第九章 模板与群体数据--模板
-线性群体
--线性群体的概念
-第九章 模板与群体数据--线性群体
-数组
--数组类模板
-链表
--链表类模板
-第九章 模板与群体数据--链表
-栈
--栈类模板
--栈类模板课后习题
--例9-9 栈的应用课后习题
-队列
--队列类模板
-第九章 模板与群体数据--队列
-排序
--排序概述
--插入排序
--选择排序
--交换排序
-第九章 模板与群体数据--排序
-查找
--查找
--查找课后习题
-小结
--小结
-综合实例
--综合实例
-实验九
--实验九
- 第九章讲义
-导学
--导学
-泛型程序设计及STL的结构
--STL简介
-第十章 泛型程序设计与C++标准模板库--泛型程序设计及STL的结构
-迭代器
--迭代器
-第十章 泛型程序设计与C++标准模板库--迭代器
-容器的基本功能与分类
-第十章 泛型程序设计与C++标准模板库--容器的基本功能与分类
-顺序容器
--顺序容器的特征
--第十章 泛型程序设计与C++标准模板库--顺序容器
-关联容器
--集合
--映射
-第十章 泛型程序设计与C++标准模板库--关联容器
-函数对象
--函数对象
--函数适配器
-算法
--算法
-小结
--第十章小结
-综合实例
--综合实例
-实验十
--实验十
- 第十章讲义
-导学
--导学
-I/O流的概念及流类库结构
-第十一章 流类库与输入/输出--I/O流的概念及流类库结构
-输出流
--输出流概述
--向文本文件输出
--向二进制文件输出
--向字符串输出
-第十一章 流类库与输入/输出--输出流
-输入流
--输入流概述
--输入流应用举例
--从字符串输入
-第十一章 流类库与输入/输出--输入流
-输入/输出流
--输入/输出流
-第十一章 流类库与输入/输出--输入/输出流
-小结
--小结
-综合实例
--综合实例
-实验十一
--实验十一
- 第十一章讲义
-导学
--第12章导学
-异常处理的思想与程序实现
-第十二章 异常处理--异常处理的思想与程序实现
-异常处理中的构造与析构
-第十二章 异常处理--异常处理中的构造与析构
-标准程序库异常处理
-第十二章 异常处理--标准程序库异常处理
-小结
--第12章小结
-综合实例
--综合实例
-实验十二
--实验十二
- 第十二章讲义