9.19学习总结

今天继续学习了派生类。

当派生类与基类中有相同成员时:若未强行指名,则通过派生类对象使用的是派生类中的同名成员。如要通过派生类对象访问基类中被覆盖的同名成员,应使用基类名限定。

二义性问题:在多重继承时,基类与派生类之间,或基类之间出现同名成员时,将出现访问时的二义性(不确定性)——采用虚函数或同名覆盖原则来解决。当派生类从多个基类派生,而这些基类又从同一个基类派生,则在访问此共同基类中的成员时,将产生二义性——采用虚基类来解决。

虚基类:虚基类的引入,用于有共同基类的场合。

作用:主要用来解决多继承时可能发生的对同一基类继承多次而产生的二义性问题.。为最远的派生类提供唯一的基类成员,而不重复产生多次拷贝。在第一级继承时就要将共同基类设计为虚基类。

虚基类及其派生类构造函数:建立对象时所指定的类称为最(远)派生类。虚基类的成员是由最派生类的构造函数通过调用虚基类的构造函数进行初始化的。在整个继承结构中,直接或间接继承虚基类的所有派生类,都必须在构造函数的成员初始化表中给出对虚基类的构造函数的调用。如果未列出,则表示调用该虚基类的缺省构造函数。在建立对象时,只有最派生类的构造函数调用虚基类的构造函数,该派生类的其它基类对虚基类构造函数的调用被忽略。

推荐阅读更多精彩内容

  • 今天上午还是学习了 继承与派生 派生类成员的标识与访问 同名覆盖原则 若未强行指名,则通过派生类对象使用的是派生类...
    战昭辰阅读 85评论 0 0
  • 1. 结构体和共同体的区别。 定义: 结构体struct:把不同类型的数据组合成一个整体,自定义类型。共同体uni...
    breakfy阅读 2,007评论 0 21
  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 2,372评论 0 3
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,182评论 1 51
  • 以前的我真是个废物,不对,是废物都不如。我一直逃避这个事实,一直没勇气面对,所以,废物去死吧。 只停留在原地,甚至...
    安之密语阅读 69评论 0 0