网站美工建设软件下载,做新闻门户网站需要什么,建设商城购物网站,吉林城市建设学校网站1.继承的作用
有些类与类之间存在特殊关系#xff0c;下级别的成员除了拥有上一级别的共性#xff0c;还有自己的特性。
这个时候我们就可以考虑利用继承技术#xff0c;减少重复代码。 总结#xff1a;
继承的好处#xff1a;可以减少重复的代码
class A : public B;…1.继承的作用
有些类与类之间存在特殊关系下级别的成员除了拥有上一级别的共性还有自己的特性。
这个时候我们就可以考虑利用继承技术减少重复代码。 总结
继承的好处可以减少重复的代码
class A : public B;
A 类称为子类 或 派生类
B 类称为父类 或 基类
2.继承方式 3.继承中的对象模型
问题从父类继承过来的成员哪些属于子类对象中
示例 结论 父类中私有成员也是被子类继承下去了只是由编译器给隐藏后访问不到
4.继承中构造和析构顺序
子类继承父类后当创建子类对象也会调用父类的构造函数
问题父类和子类的构造和析构顺序是谁先谁后
示例
总结继承中 先调用父类构造函数再调用子类构造函数析构顺序与构造相反
5. 继承同名成员处理方式
问题当子类与父类出现同名的成员如何通过子类对象访问到子类或父类中同名的数据呢
访问子类同名成员 直接访问即可 s.m_A访问父类同名成员 需要加作用域 s.Base::m_A
示例
同名成员 同名的成员函数 总结
子类对象可以直接访问到子类中同名成员子类对象加作用域可以访问到父类同名成员当子类与父类拥有同名的成员函数子类会隐藏父类中同名成员函数加作用域可以访问到父类中同名函数
6 .继承同名静态成员处理方式
静态成员和非静态成员出现同名处理方式一致 同名成员函数 总结同名静态成员处理方式和非静态处理方式一样只不过有两种访问的方式通过对象 和 通过类名 7.多继承语法
C允许一个类继承多个类
语法class 子类 继承方式 父类1 继承方式 父类2...
多继承可能会引发父类中有同名成员出现需要加作用域区分
C实际开发中不建议用多继承
8.菱形继承
菱形继承概念
两个派生类继承同一个基类
又有某个类同时继承者两个派生类
这种继承被称为菱形继承或者钻石继承 总结
菱形继承带来的主要问题是子类继承两份相同的数据导致资源浪费以及毫无意义利用虚继承可以解决菱形继承问题