C++知识要点整理11:继承与派生(1)
来源:互联网 发布:windows远程桌面快捷键 编辑:程序博客网 时间:2024/06/02 06:14
1.继承
(1)公用继承基类的公有成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。
(2)私有继承
基类的公有成员和保护成员在派生类中成了私有成员。其私有成员仍为基类私有。
(3)受保护的继承
基类的公有成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有(保护成员的意思是:不能被外界引用,但可以 被派生类的成员引用)。
在基类的访问属性 继承方式 在派生类中的访问属性private(私有)public(公用)不可访问private(私有)private(私有)不可访问private(私有)protected(保护)不可访问public(公有)public(公用)public(公用)public(公有)private(私有)private(私有)public(公有)protected(保护)protected(保护)protected(保护)public(公用)protected(保护)protected(保护)private(私有)private(私有)protected(保护)protected(保护)protected(保护)
2.派生类的构造函数
(1)简单的派生类的构造函数派生类构造函数一般形式为:
派生类构造函数名(总参数表):基类构造函数名(参数表)
{派生类中新增数据成员初始化语句}
例如:
Student1(int n,string nam,char s,int a,string sd):Student(n,nam,s)
{
age =a;
addr=ad;
}
其中Student1公用继承自Student,Student1中有age和addr两个私有数据成员,Student中有num,name,sex,三个私有数据成员。我们可以看到基类构造函数参数表列只有参数名而没有参数类型,因为在这里不是定义基类构造函数,而是调用基类构造函数,因此这些参数是实参而不是形参。
(2)有子对象的派生类的构造函数
类中的数据成员中还可以包含类对象,如可以在声明一个Student1类时包含这样的数据成员:Student s1;这时,s1就是类对象的内嵌对象,称为子对象。
此时定义派生类构造函数的一般形式为:
派生类构造函数名(总参数表):基类构造函数名(参数表),子对象名(参数表)
{派生类中新增数据成员初始化语句}
执行顺序是:首先调用基类构造函数,对基类数据成员初始化;然后调用子对象构造函数,对子对象数据成员初始化;最后执行派生类构造函数本身,对派生类数据成员初始化。
(3)多层派生时的构造函数
不要列出每一层派生类的构造函数,只需写出其上一层派生类(即它的直接基类)的构造函数即可。
3.使用派生类构造函数时的两种特殊形式:
(1)当不需要对派生类新增的成员进行任何初始操作时,派生类构造函数的函数体可以为空,即构造函数是空函数。例如:Student1(int n,string nam,int n1,string nam1):Student(n,nam),monitor(n1,nam1){}
(2)如果在基类中没有定义构造函数,或定义了没有参数的构造函数,那么,在定义派生类构造函数时可以不写基类构造函数。因 为此时派生类构造函数没有向基类构造函数传递参数的任务。在调用派生类构造函数时,系统会自动首先调用基类的默认构造函 数。
4.派生类的析构函数
调用顺序:先执行派生类自己的析构函数,对派生类新增加的成员进行清理,然后调用子对象的析构函数,对子对象进行清理,最后调用基类的析构函数,对基类进行清理。- C++知识要点整理11:继承与派生(1)
- C++知识要点整理12:继承与派生(2)
- C++: 继承与派生
- 继承与派生(C++)
- C++:继承与派生
- 继承与派生(1)
- C++_继承与派生
- C++_继承与派生
- C++_继承与派生
- C++_继承与派生
- 【学习C++】继承与派生
- 继承与派生1
- 继承与派生1
- C++之继承与派生(1)
- 继承---派生类(C++)
- 一步一步学习C++(类)之继承与派生
- 10-1 派生与继承
- 5-1 继承与派生
- 与IT&码农有关的电影和记录片
- java io
- QT学习之1---安装配置
- 分区表的分区与普通表交换的一些问题
- C#委托和事件
- C++知识要点整理11:继承与派生(1)
- 倒影效果的图片Bitmap的函数
- 欧拉图
- 实验二 类封装,实例成员与类成员,包 之 Example.java
- jdk与jre的区别。
- 在unity内置的地形中使用凹凸贴图
- java大学实用教程第三版第二章代码
- 【OpenStack】OpenStack中的消息队列2--以Quantum为例
- HDU 4501 小明系列故事——买年货