【C++学习之路】派生类的构造函数(三)
三、多层继承的派生类
1.多层继承的派生类只需在构造函数的初始化列表中写出直接基类的构造函数即可
class student
{
public:
student(int n, string nam)
{
num = n; name = nam;
}
};
class student1 : public student
{
public:
student1(int n, string nam, int a) :student(n, nam) {age = a;}
};
class student2 : public student1
{
public:
student2(int n, string nam, int a, int s) :student1(n, nam, a) {score = s;}
};
基类:student(int n, string nam)
一级派生: student1 ( int n, string nam, int a ):student (n,nam)
二级派生:student2 ( int n, string nam, int a, int s ): student1 (n,nam,a)
2.注意!!不要写成:
student2 ( int n, string nam, int a, int s ): student (n, nam), student1(n, nam, a)//错误!!!
四、派生类的构造函数总结
1.student(所有的形参表写在这里):这里能写的东西只有(1)基类构造函数(2)内嵌对象的初始化列表(3)该类的新增数据成员{函数体里能写的东西有(1)基类中能在派生类中访问的数据的赋值(2)派生类新增数据成员的赋值(3)其他想加的语句}
2.在初始化列表中的执行顺序为(1)直接基类构造函数(如果没有显式写出的话,系统会自动调用一个无参构造函数)(2)内嵌对象对应的类的构造函数(具体调用哪一个取决于对象的参数形式)(3)其他语句
3.从本质上来讲,构造函数的作用在于初始化该类中的数据成员,但是达到同样的目的的方法有很多,比如我可以在类中写一个函数,给数据成员赋值;但是,最简单和可靠的方式还是调用构造函数,所有构造函数最终是要将所有的数据成员都初始化。(对于有些被继承了之后访问不了的数据成员怎么办?)
【C++学习之路】派生类的构造函数(三)的更多相关文章
- 【C++学习之路】派生类的构造函数(一)
一.简单派生类的构造函数 1.所谓简单派生类,就是指派生类中不包含基类的内嵌对象的派生类. 2.一般来说,这样的派生类的构造函数的形式是: student( int i, string nam, in ...
- C++学习之路—继承与派生(二):派生类的构造函数与析构函数
(根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 由于基类的构造函数和析构函数是不能被继承的,所以 ...
- C++学习17派生类的构造函数
基类的构造函数不能被继承,在声明派生类时,对继承过来的成员变量的初始化工作也要由派生类的构造函数来完成.所以在设计派生类的构造函数时,不仅要考虑派生类新增的成员变量,还要考虑基类的成员变量,要让它们都 ...
- C++学习笔记(6)----基类和派生类的构造函数和析构函数的执行顺序
基类和派生类:构造函数和析构函数的执行顺序 在Visual Studio中,新建控制台工程,构造类如下: #include<iostream> using namespace std; c ...
- c++学习笔记4,派生类的构造函数与析构函数的调用顺序(一)
測试源代码: //測试派生类的构造函数的调用顺序何时调用 //Fedora20 gcc version=4.8.2 #include <iostream> using namespace ...
- 【C++ Primer 第15章】定义派生类拷贝构造函数、赋值运算符
学习资料 • 派生类的赋值运算符/赋值构造函数也必须处理它的基类成员的赋值 • C++ 基类构造函数带参数的继承方式及派生类的初始化 定义拷贝构造函数 [注意]对派生类进行拷贝构造时,如果想让基类的成 ...
- 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员)
[源码下载] 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成 ...
- C++:派生类的构造函数和析构函数
4.2 派生类的构造函数和析构函数4.2.1 派生类构造函数和析构函数的执行顺序 通常情况下,当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构造函数:当撤销派生类对象时,则先执行派生类 ...
- 【C++继承与派生之二】有子对象的派生类的构造函数
这是我今天看书刚刚看到的,觉着以前对这一块内容了解不多,所以整理一下分享给大家.首先要介绍一下子对象的概念.类的数据成员不仅可以是int.char这样的基本类型,也可以是类对象,如可以包含这样的数据成 ...
随机推荐
- FileUpload 改变控件显示的文字
浏览
- some words that I always make mistake
发音相似容易混淆的词汇 alteration 英 [ɔːltə'reɪʃ(ə)n; 'ɒl-] 美 [,ɔltə'reʃən] n. 修改,改变:变更 alteration /ˌɔːltəˈre ...
- jQuery plugin
SidebarJS http://makotot.github.io/sidebar/
- h.264 mvp求解过程
h.264标准中由于分为宏块分割块(8x8),子宏块分割块(4x4),所以各种各样的求解过程比较繁琐 下面整理出标准中mvp的求解过程 8.4.1.3 已知条件有当前块的属性:位置.块类型需要得到当前 ...
- Android子线程更新主界面
学习什么的还是要真正的有应用,有需求才能在最短的时间里面牢牢掌握一项技术. 今天就是这样的,产品一个需求下来,十万火急啊.然后之前只稍稍接触过,只能硬着头皮上了.最后牢牢地掌握了最简单的Handler ...
- Java学习日记 I/O
File类1.String[] list() 返回一个目录下文件和文件夹路径的字符串数组2.File[] listFiles() 以File类对象数组,返回目录下的所有文件和文件夹3.isDirect ...
- Maven可继承的POM 元素
groupId :项目组 ID ,项目坐标的核心元素: version :项目版本,项目坐标的核心元素: description :项目的描述信息: organization :项目的组织信息: in ...
- Citrix 服务器虚拟化之十八 桌面虚拟化之部署MCS随机桌面池
Citrix 服务器虚拟化之十八 桌面虚拟化之部署MCS随机桌面池 完成桌面模版的制作后,可以开始虚拟桌面池的发布 说明: 环境基于实验十七 1.登录DC服务器创建一个组织单位名为Citrix,然后 ...
- tcp/ip状态图
开启一个连接需要三次握手,终止一个tcp连接需要4次握手,对应的客户端和服务器连接状态也随之而改变. 1.服务器出现大量的CLOSE_WAIT? 通常,CLOSE_WAIT 状态在服务器停留时间很短, ...
- Project Euler:Problem 47 Distinct primes factors
The first two consecutive numbers to have two distinct prime factors are: 14 = 2 × 7 15 = 3 × 5 The ...