C++类和对象 继承-基本语法;

继承的好处: 减少重复代码

语法: class 子类 : 继承方式 父类

子类 也称为 派生类

父类 也称为 基类

派生类中的成员,包含两大部分:

一类是从基类继承过来的,一类是自己增加的成员

从基类继承过来的表现为共性,而新增加的体现了其个性。

继承方式

继承语法:class 子类 :继承方式 父类

继承方式一共有三种:

公共继承

保护继承

私有继承

继承中的对象模型

结论: 父类中的私有成员也是被子类继承下去的,只是编译器给隐藏后访问不到

利用工具查看:

 

 

继承中的构造和析构顺序

继承中: 

先调用父类构造函数

在调用子类构造函数

先析构子类构造函数

最后析构父类构造函数

析构顺序与构造顺序相反

继承同名成员处理方式

当子类中出现与父类同名的成员,如何通过子类对象,访问到子类或父类的同名数据

访问子类同名成员:直接访问即可

访问父类同名成员: 需要加作用域

总结:

同名静态成员的处理方式和非静态是一样的,只不过有两种访问方式(通过对象和通过类名)

多继承语法

 C++允许一个类继承多个类

语法: class 子类 :继承方式 父类1,继承方式 父类2 ...

多继承可能会引发父类中有同名成员出现,需要加作用域区分

总结:多继承中父类出现了同名情况,子类使用时候要加作用域。

C++实际开发中不建议使用多继承

菱形继承

菱形继承概念:

两个派生类继承同一个基类(父类)

又有某个类同时继承两个派生类

这种继承被称为菱形继承,或者钻石继承

利用虚继承,可以解决菱形继承的问题 virtual关键字

在继承之前 加上关键字 virtual 变成虚继承

总结:菱形继承带来的问题是子类继承两份相同的数据,导致资源浪费以及毫无意义

利用虚继承(指针偏移)可以解决继承问题。

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值