继承:
继承是指一个对象直接使用另一个对象的属性和方法。在面向对象编程中,都有类的继承。C++中类继承总共有三种方式实现,包括:公有继承(public)、私有继承(private)、保护继承(protected)。继承可以使现有的代码具有可重用性和可拓展性。
C++类继承中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承为单继承;从多个基类派生继承称为多继承。
公有继承(public):
基类的公有成员和保护成员可以作为派生类的公有成员和保护成员。
派生类的成员函数可以访问基类中的公有成员和保护成员,无法访问基类中的私有成员。
派生类的对象可以访问基类的公有成员。
私有继承(private):
基类的公有成员和保护成员都作为其派生类的私有成员。
在私有继承中,基类的成员只能由直接派生类访问,而无法再往下继承。
保护继承(protected):
基类的所有公有成员和保护成员都称为派生类的保护成员。
基类的公有成员和保护成员只能被他的直接派生类成员函数或友元访问。
构造函数和析构函数不能被继承:
因此构造派生类的对象时,需要对基类数据成员,新增数据成员和成员对象的数据成员进行初始化。
派生类构造函数的参数表部分既需要包含子类某些数据成员初始值,也要包含基类的数据成员的初始值。
如果没有默认的构造函数,那么派生类必须具有给基类构造函数提供参数的构造函数。
派生构造函数一般语法:
派生类名 :: 派生类名(参数总表) : 基类名(参数表1), ... 基类名(参数表n)
{
初始化语句
}
当基类有多个构造函数时,编译器根据派生类构造函数为基类构造函数提供的参数初始化列表中的参数类型来确定调用哪个构造函数。
派生类的析构函数应当首先对派生类新增的普通成员进行清理。
然后对派生类新增成员进行清理。
最后对所有从C++
类继承来的成员进行清理。
创建一个派生类对象时,如果基类带有构造函数,则先调用基类的构造函数,然后调用派生类的构造函数;派生类对象被撤销时析构函数的调用次序刚好和构造函数的调用次序相反。
类中公有成员继承后在子类中仍然是公有成员。
基本概念:
继承是C++语言中的一种重要机制,也是面向对象的一个重要特征,实现了面向对象设计思想中软件复用的功能。继承的实质就是通过现有的类的特征,构造出一个具有现有类的特征的新类,这个新类称为派生类。派生类是从一个或者多个以前定义的类(基类)继承数据和函数(方法),同时中增加或者冲定义数据和函数。这样就具有类的层次性了。
另一方面,继承就是创建一个具有别的类的属性和方法的新类。继承和派生就是人们认识事情的过程。例如交通工具类就是一个基类,假设这个类有两个子类,也叫做派生类,分别是汽车类和轮船类。
每个类有且仅有一个父类,而子类也仅有一个父类。
当从基类派生出新的类的时候,可以对新类做的操作有:
1、可以增加新的成员变量;
2、可以增加新的成员函数;
3、可以重新定义已有的成员函数;
4、可以改变现有的成员属性。
分享到:
相关推荐
浅谈c++的精髓之继承和多态
继承映射
浅谈JavaScript对象与继承_.docx
谈民族民间舞蹈的继承创新与发展
谈有限责任公司股东资格继承.doc
矩形是形,椭圆形是形,三角形也是形。苍蝇是昆虫,蜜蜂是昆虫,蚂蚁也是昆虫。是的,人类习惯把相同的性质抽取出来,成立一个基类,再从中衍化出派生类。本文主要讲解了继承的基本概念和this指针的原理。
主要介绍了Python中继承的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
深入JS继承 目录 前言准备总结继承的n种方式原型式继承原型链式继承借用构造函数(类式继承...撇开ES6 class不谈,传统的继承方式你知道几种?每种实现原理是什么,优劣点能谈谈吗。这里就结合具体例子,按照渐进式的
浅谈甘南玛曲民间音乐的继承与发展.docx
浅谈中国民族声乐专业的继承与发展.docx
下面小编就为大家带来一篇浅谈JS继承_寄生式继承 & 寄生组合式继承。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
真正意义上来说Javascript并不是一门面向对象的语言,没有提供传统的继承方式,但是它提供了一种原型继承的方式,利用自身提供的原型属性来实现继承。 原型与原型链 说原型继承之前还是要先说说原型和原型链,毕竟这...
浅谈西汉王朝对秦代法律制度的继承与发展.docx
浅谈俄罗斯的概况和其文学的继承性特征.doc
继承大师风范_铸造高尚师魂谈教师的人格与素质修养考试答案.doc
主要介绍了浅谈Java继承中的转型及其内存分配,首先分享了简单的代码及运行结果,然后对其进行分析,继而引出了
当代大学生如何继承和弘扬中华民族优良传统美德.doc