栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

学习c++核心Day7

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习c++核心Day7

---------------------------------------------------------------------------------------------------------------------续上

3.5 继承同名成员处理方式

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

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

总结:

子类对象可以直接访问到子类中同名成员

子类对象加作用域可以访问到父类

同名成员当子类与父类拥有同名的成员函数,子类会隐藏父类中同名成员函数,加作用域可以访问到父类中同名函数

3.6 继承同名静态成员处理方式

静态成员和非静态成员出现同名,处理方式一致         

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

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

总结:

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

3.7 多继承语法

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

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

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

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

3.8 菱形继承

菱形继承概念:两个派生类继承同一个基类

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

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

总结:

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

利用虚继承可以解决菱形继承问题                   继承前加virtual关键字后,变为虚继承

4. 多态

4.1 多态的基本概念

多态分为两类

静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名

动态多态: 派生类和虚函数实现运行时多态

静态多态和动态多态区别:

静态多态的函数地址早绑定 - 编译阶段确定函数地址

动态多态的函数地址晚绑定 - 运行阶段确定函数地址

总结:

多态满足条件

有继承关系

子类重写父类中的虚函数           重写:函数返回值类型 函数名 参数列表 完全一致称为重写

多态使用条件

父类指针或引用指向子类对象

4.2 纯虚函数和抽象类

在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容

因此可以将虚函数改为纯虚函数

纯虚函数语法:virtual 返回值类型 函数名 (参数列表)= 0 ;

当类中有了纯虚函数,这个类也称为抽象类

抽象类特点:

无法实例化对象

子类必须重写抽象类中的纯虚函数,否则也属于抽象类

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030698.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号