当前位置:   article > 正文

C++初探_虚基类的声明

C++初探_虚基类的声明

存在的原因:希望在多重继承时(即:派生类有多个直接基类,而这些直接基类是从同一个祖先基类派生而来),派生类只继承一个共同的祖先基类对象。

代码:

  1. #include <iostream>
  2. using namespace std;
  3. class Worker { //祖先基类
  4. private:
  5. string fullname; //对象成员
  6. long id;
  7. public:
  8. Worker() {}
  9. virtual ~Worker(){} //虚析构函数
  10. ...
  11. };
  12. class Waitress :virtual public Worker{ //要声明虚基类,只需要在派生时声明virtual即可
  13. private:
  14. int panache;
  15. public:
  16. Waitress():Worker(),panache(0){} //成员初始化列表
  17. ...
  18. };
  19. class Singer :virtual public Worker { //要声明虚基类,只需要在派生时声明virtual即可
  20. private:
  21. int voice;
  22. public:
  23. Singer():Worker(),voice(0){}
  24. ...
  25. };
  26. class SingerWaitress :public Waitress, public Singer { //不需要声明virtual
  27. public:
  28. SingerWaitress():Worker(0),Waitress(0),Singer(0){} //必须显式调用虚基类构造函数。
  29. ...
  30. };

分析:禁止信息通过中间类自动传递给虚基类。因此,在派生类中,必须通过显式地调用虚基类构造函数进行初始化。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/573318
推荐阅读
相关标签
  

闽ICP备14008679号