C++之继承与派生类
来源:互联网 发布:手机画板软件免费版 编辑:程序博客网 时间:2024/05/29 15:03
一、什么是继承
继承机制是面向对象程序设计使代码可以复用的最重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了有简单到复杂的认知过程。
二、
C++中所谓的“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类(例如“马”)称为“基类”或“父类”。新建立的类(例如“公马”)称为“派生类”或“子类”。(如下图)
1.继承定义格式:
当不写继承权限时默认为私有(public)继承
2.继承的代码形式:
#include<iostream>using namespace std;class Base //基类{public:int _b;protected:int _b1;private:int _b2;};class Derived :public Base //派生类{public:int _d;};int main(){cout << sizeof(Base) << endl; //12 基类所占字节cout << sizeof(Derived) << endl; //16 派生类所占字节system("pause");return 0;}
三、继承后各成员在派生类中的访问权限:
public继承:
protected继承
private继承
四、单继承、多继承、菱形继承
(1)单继承
class Base{public:int _b;};class D :public Base{public:int _d;};(2)多继承
class Base1{public:int _b;};class B2{public:int _b2;};class D :public Base1,public B2{public:int _d;};
(3)菱形继承:
class B{public:int _b;};class C1 :public B{public:int _c1;};class C2 :public B{public:int _c2;};class D :public C1, public C2{public:int _d;};
(4)对象模型:
五、派生类的对象构造顺序
class Base1{public:Base1(){};public:int _b;};class D :public Base1{public:D(){};public:int _d;};int main(){D d;}
上面的代码创建了一个 D 类型的对象d
1.执行顺序为: 派生类构造函数---->初始化类表---->完成基类对象构造(调基类构造函数)---->调派生类构造函数
2.析构的执行顺序:
先析构派生类对象---->析构基类对象
注:
1.基类没有定义带参数(没有缺省值)的构造函数-----派生类构造函数可定义也可不用定义。
2.基类有带参数(没有缺省)的构造函数-------派生类一定要给出自己的构造函数
3.基类定义缺省的构造函数-------派生类中系统合成构造函数
阅读全文
1 0
- 一步一步学习C++(类)之继承与派生
- C++: 继承与派生
- 继承与派生(C++)
- C++:继承与派生
- c++类之继承与派生
- C++之继承与派生类
- C++_继承与派生
- C++_继承与派生
- C++_继承与派生
- C++_继承与派生
- 【学习C++】继承与派生
- 派生类与继承
- 继承与派生类
- C++之继承与派生
- C++之“继承与派生”
- C++之继承与派生
- c++之继承与派生
- 继承与派生:派生类对基类成员的访问控制之公有继承
- 1012. 数字分类 (20)
- 简单的检测字符串是否是ip的算法
- LiteIDE中漂亮的几款QSS
- 指针的算术运算
- win10 uwp 后台获取资源
- C++之继承与派生类
- 秒破 "2 --- 50" bug
- 打字小游戏
- MVP+Dagger2+Retrofit2+Rxjava搭建的一个电影相关的Demo
- 最小费用最大流模板
- cocos creator(十二)问题
- LeetCode #85
- Hibernate基础之增删改查
- win10 uwp 列表模板选择器