C++学习笔记---继承
来源:互联网 发布:windows 8.1 WIFI 编辑:程序博客网 时间:2024/06/05 08:36
1.继承和派生的概念
子类继承了父类的特性,但同时又可以派生出新的特性。
2.公有继承、私有继承和保护继承的区别
基类中的 在公有子类中 在保护子类中 在私有子类中
公有成员 公有成员 保护成员 私有成员
保护成员 保护成员 保护成员 私有成员
私有成员 私有成员 私有成员 私有成员
私有继承:防止基类中的公有和保护成员因为继承而发生扩散。
保护继承:防止基类中的公有和保护成员因为继承而发生外部扩散,允许在继承链内部扩散。
3.类成员的访控属性
访控限定符 访控属性 基类 子类 外部 友元
public 公有成员 OK OK OK OK
protected 保护成员 OK OK NO OK
private 私有成员 OK NO NO OK
4.构造函数和析构函数在继承中的执行顺序
(1)任何时候子类的构造函数都会通过基类的构造函数构造子类对象的基类,除非在子类构造函数的初始化表中显示指明其基类部分的初始化方式,否则一律按照无参数方式构造其基类部分。
(2)构造顺序:基类->成员->子类
(3)析构顺序:子类->成员->基类
(4)任何时候子类的析构函数都会通过基类的析构函数析构其基类子对象。
(5)delete一个指向子类对象的基类指针,实际被调用的将是基类的析构函数,而基类的析构函数不会自动调用子类的析构函数,子类中的资源将形成内存泄漏。
(6)基类的构造顺序是按继承时给定的顺序执行,与初始化定义顺序无关。
5.多重继承的概念
从2个或2个以上的基类派生出子类
6.多重继承的两义性---钻石继承
A
/ \
X Y
\ /
Z
为了使多重继承不出现两义性,将公共基类说明为虚基类,说明方式是从公有基类派生出新类时,使用virtual关键字。
class A : virtural public B { }
7.基类与派生类的转换
(1)派生类的指针不能直接指向基类对象。
基类对象通常会小于派生类对象,如果将基类对象的地址赋给指向派生类对象的指针,而派生类对象的指针仍会像操作派生类对象那样操作基类对象,那么就会将一部分不属于基类对象的内存也操作了,这样在使用该指针操作时可能会删除或修改基类对象之外的数据,所以派生类指针不能直接指向基类对象。
(2)虚基类的指针或引用不能转换为派生类的指针或引用。
- 学习笔记(objective-c)-继承
- Object-C学习笔记三-----继承
- Objective-C学习笔记第四章继承
- 【C++】【学习笔记】【028】多继承
- 【C++】【学习笔记】【029】虚继承
- Objective-C学习笔记九:继承一
- Objective-C学习笔记十:继承二
- 【学习笔记】C++primer plus 13.继承
- 【笔记-C++】 继承
- Objective-C学习笔记---类别(实现多重继承的方法)
- Objective-C学习笔记---类别(实现多重继承的方法)
- Object-C 学习笔记(八)---面相对象(继承)
- Object-c基础编程学习笔记-继承,复合
- 【C++】【学习笔记】【016】this指针和类的继承
- Objective-C 学习笔记 04 - 继承和对象的实例
- 黑马程序员 — Objective-C学习笔记(二):继承
- (C/C++学习笔记)多继承的二义性
- OBJ-C类的继承和派生学习笔记
- iphone(苹果)手机登陆Lync 2013的配置
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- 堆和栈的区别
- JNDI知识
- UVA10010- Where's Waldorf?(string+暴搜)
- C++学习笔记---继承
- oracle常用建表空间,用户,导入导出命令
- Office操作出现进程在系统中不能关闭而出错, 另一个进程正在使用此文件
- 我的第一个JSP
- 2013/1012一个引脚输出PWM信号,一个引脚接收输入——驱动的构思
- Java遍历文件夹的2种方法:
- java注解应用-java.lang.annotation
- 中国天气网API
- Myeclipse下ext插件spket的配置和安装