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

继承和多继承的知识点

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

继承和多继承的知识点

文章目录
  • 继承中的构造和析构
  • 继承同名静态函数处理方式
    • 1通过对象访问
    • 2通过类名访问
  • 多继承语法
  • 菱形继承

继承中的构造和析构

当子类继承父类之后,调用子类的构造函数 也会调用父类的构造函数
继承中的构造,先构造父类再构造子类,析构顺序相反

继承中同名函数的处理 访问子类的同名成员 直接访问即可。
访问父类的同名成员 需要加作用域

eg:stu.getname();//调用子类的同名函数
eg:stu.Person::getname();//调用父类的同名函数

总结:
1子类对象可以直接访问到子类中的同名成员
2子类对象加作用域可以访问到父类的同名成员
3当子类与父类拥有同名的成员函数,子类就会隐藏父类中的同名函数,加作用域可以访问到父类中的同名函数。

继承同名静态函数处理方式

继承中同名静态成员在子类对象上如何进行访问?
静态成员和非静态出现同名,处理方式一致

1通过对象访问

s.m_a;//访问子类的同名成员
s.Base::m_a;//访问父类的同名成员

2通过类名访问

son::m_a;//访问子类的同名成员
//第一个::代表通过类名方式进行访问,第二个::代表访问父类作用域下
son::Base::m_a;//访问父类的同名成员

多继承语法

c++允许一个类继承多个类
多继承可能会引发父类中有同名成员出现,需要加作用域区分
注意:c++实际开发中 不建议多继承
class son :public base1,public base2
s.Base1::m_a;//父类1中的成员
s.Base2::m_a;//父类2中的成员

菱形继承

两个派生类继承同一个类
又有一个类 同时继承两个派生类
问题:继承两个派生类的类会因为继承了两份一样的数据 而产生二义性
解决:
利用虚继承 解决菱形继承问题
继承之前 加上关键字 virtual 变为虚继承
animal类称为虚基类

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

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

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