c++面向对象 继承 知识点详解与理解

前言

我们为什么需要继承?

在每个子类子系统中,总会有相同的属性,如果每写一个子类就写一遍共同属性,浪费时间与空间,于是继承出现了。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行时间的效果。

1. 继承基本语法

son是子类 father是父类

class son: 继承方式 father

2.继承的方式

一张图说明

注意无论哪种继承方式都不能访问父类中的私有元素。

3.继承中的对象模型

Class Base
{
Public:

Protect:

Private:
}

Class son :public Base
{
Public:
 int m_D;
}

size of(Son)是多少呢?

答案是 16。

说明:父类中所有非静态成员属性都会被子类继承。

父类中私有变量 是被编译器隐藏了 但却是被继承了 只是访问不到

4.继承中构造和析构顺序

父类与子类构造与析构的顺序谁先谁后??

通过代码验证得 

继承中的构造与析构顺序为:先构造父类,再构造子类, 析构相反。

5.继承中同名成员处理

(1)同名变量

父类中有一个变量m_A

子类继承父类但子类中有一个同名变量m_A ,这时输出m_A 结果会是多少呢?

直接写会得到子类m_A

若想得到父类需加作用域 即     父类::m_A.

(2)同名函数

直接调用是子类

得父类加作用域 父类::子类.函数()。

注意:有同名成员函数,子类同名成员会隐藏掉父类中所有成员函数

 6.继承中的同名静态成员处理

7.多继承语法

一个儿子允许有多个父亲

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

父类中出现同名成员需加作用域区分

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值