此贴用来记录学习C++语言的联想!
学习内容:
1、C++ 的三大特性
答:继承 封装 多态
2 、从继承出发思考
C++ 提供的一种比直接修改代码更好的方式来扩展和修改已经存在的类,能从已有的类派生出新的类,派生类继承了原有类的特征和方法,可以实现代码重用。
继承的优点:
1) 代码重用,减少工作量
2)很方便的修改父类
继承的缺点:
1)继承是侵入性的,只要继承就必须拥有父类的所有属性和方法;
2)可能造成子类代码冗余、灵活性降低,因为子类必须拥有父类的属性和方法。
继承的实现有3种
虚继承属于多继承中的特殊例子,如菱形继承是会出现2个共同的部分,此时如果调用基类的内容会有两个基类,不知道调用那个,因此需要虚继承,虚继承使得该虚继承的基类在子类的内存模型里面只会有一个。构建子类的时候有虚继承的时候,子类会生成虚基类表指针指向虚基类,按照声明顺序依次添加进内存的时候,两个父类的虚基类表相同的时候 后边的不在生成