C++中的继承(一)
来源:互联网 发布:秦始皇活着吗 知乎 编辑:程序博客网 时间:2024/05/16 05:09
继承(inheritance)机制
是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构。体现了由简单到复杂的认识过程。
思想:
从现有的类继承属性和行为,然后增加属性和行为定制类以满足我们的实际要求,创建派生类不会英系那个基类的源代码,基类的完整性可以得到保证
由基类派生出派生类的定义的一般形式为
class 派生类名:访问限定符 基类名1《,访问限定符
基类名2,……,访问限定符 基类名n》
{
private:
成员表1;》 //派生类增加或替代的私有成员
public:
成员表2;》 //派生类增加或替代的公有成员
protected:
成员表3;》 //派生类增加或替代的保护成员
};//分号不可少
其中基类1,基类2,……是已声明的类。 在派生类定义的类体中给出的成员称为派生类成员,它们是新增加成员,它们给派生类添加了不同于基类的新的属性和功能。派生类成员也包括取代基类成员的更新成员。
派生类的构造函数的定义形式为:
派生类名::派生类名(参数总表):基类名1(参数表1)《,基类名2(参数表2),……,基类名n(参数表n)》,《成员对象名1(成员对象参数表1),……,成员对象名m(成员对象参数表m)》{
……//派生类新增成员的初始化;
} //所列出的成员对象名全部为新增成员对象的名字
在构造函数的声明中,冒号及冒号以后部分必须略去。
所谓不能继承并不是不能利用,而是把基类的构造函数作为新的构造函数的一部分,或者讲调用基类的构造函数。
冒号后的基类名,成员对象名的次序可以随意,这里的次序与调用次序无关
派生类构造函数各部分的执行次序为:
1.调用基类构造函数,按它们在派生类定义的先后顺序,顺序调用。
2.调用成员对象的构造函数,按它们在类定义中声明的先后顺序,顺序调用。
3.派生类的构造函数体中的操作。
在派生类构造函数中,只要基类不是使用缺省构造函数都要显式给出基类名和参数表。
如果基类没有定义构造函数,则派生类也可以不定义,全部采用系统给定的缺省构造函数。
如果基类定义了带有形参表的构造函数时,派生类就应当定义构造函数。
析构函数各部分执行次序与构造函数相反,首先对派生类新增一般成员析构,然后对新增对象成员析构,最后对基类成员析构。
- C#中的继承(一)
- C#中的继承(一)
- C++中的继承(一)
- C++中的继承(一)
- 关于JS中的继承(一)
- Java中的继承(一)
- 【C++】c++中的继承
- 浅谈Objective-C中的继承
- 【C++】浅谈C++中的继承
- 【C++】浅析C++中的继承
- JavaScript中的原型(链)&继承(一)
- js中的apply和call,继承(一)
- C语言面向对象编程(一):封装与继承
- C语言面向对象编程(一):封装与继承
- C语言面向对象编程(一):封装与继承
- C语言面向对象编程(一):封装与继承
- C语言面向对象编程(一):封装与继承
- 【C++】继承(菱形继承)
- 浅谈CSRF攻击方式
- Oracle中的order by分页排序问题
- 拆解Cluene系列(4)——store中的类图
- 在Windows上启动ZabbixAgent
- 单调递增最长子序列(Lis)
- C++中的继承(一)
- 锁屏状态下弹出对话款,类似QQ、微信锁屏时候屏幕小窗口显示消息
- Android自定义控件之日历控件
- 微盘链接信息
- <s:textfield></s:textfield>,<s:date>,<s:property>获取值
- ZabbixServer配置文件详解
- 【poj3608】 Bridge Across Islands
- Java多线程编程——对象及变量的并发访问 02
- 平衡二叉树