菱形继承
来源:互联网 发布:vba聊天软件编程 编辑:程序博客网 时间:2024/06/05 17:53
1.分析菱形继承的问题。
class Person{public: string _name;};class Student:public Person{protected: int _num;};class Teacher:public Person{protected: int _id;};class Assistant:public Student,public Teacher{protected: string _majorCourse;};
Assistant中继承了Student和Teacher中的Person。
2.剖析虚继承是怎么解决二义性和数据冗余的。
在类的成员函数前面加上virtual。
virtual public Person 虚拟继承
就会使_name指的是同一块区域,同一个对象
不加virtual就会是子继承分别对应的不同区域和对象,从而形成二义性。
偏移量固定——没有解决二义性
虚函数重写——当在子类定义了一个与父类完全相同的虚函数时候,则称子类的这个函数重写(覆盖)了父类的这个虚函数。
阅读全文
0 0
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 菱形继承
- 一个列表点击某一个返回它的index
- 例题6-21 系统依赖(System Dependencies, ACM/ICPC World Finals 1997, UVa506)
- 第三周项目一(2)
- Centos 7 搭建 Zookeeper 集群
- 小木棍 [数据加强版]
- 菱形继承
- 第二周第一次课(第一章--绪论)
- C++中数组
- 算法6 抢劫
- 在centos7的普通用户下二进制安装mysql5.5版本
- 第三周项目一(3)
- 【面试的那些坑-1】用两个栈实现一个队列
- Linux系统(RedHat)在安装后的网络配置
- 坚持自己喜欢的事情