服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++多继承同名隐藏实例详细介绍

C++多继承同名隐藏实例详细介绍

2020-11-10 17:45C++教程网 C/C++

多继承可以看作是单继承的扩展。所谓多继承是指派生类具有多个基类,派生类..本文将对C++多继承同名隐藏实例进行分析

如果某个派生类的部分或者全部直接基类是从另一个共同的基类派生而来,在这些俄直接基类中,

从上一级基类继承来的成员就拥有相同的名称,因此派生类中就会出现同名现象。对这种类型的同名成员也要使用作用域分辨符来唯一标识,而且必须使用直接基类来进行限定。

  1. --------------------------------------------------  
  2. /*  
  3. * File: main.cpp  
  4. * Author: yubao  
  5.  
  6. * Created on May 31, 2009, 8:54 AM  
  7. */  
  8. #include <iostream>  
  9. using namespace std;  
  10. class B0  
  11. {  
  12. public :  
  13. int nV;  
  14. void fun(){cout<<"member of B0"<<endl;}  
  15. };  
  16. class B1:public B0  
  17. {  
  18. public:  
  19. int nV1;  
  20. };  
  21. class B2:public B0  
  22. {  
  23. public :  
  24. int nV2;  
  25. };  
  26. class D1:public B1,public B2  
  27. {  
  28. public:  
  29. int nVd;  
  30. void fun(){cout<<"member of D1"<<endl;}  
  31. };  
  32.  
  33. /*  
  34.  
  35. */  
  36. int main(int argc, char** argv) {  
  37. D1 d1;  
  38. d1.B1::nV=2;  
  39. d1.B1::fun();  
  40. d1.B2::nV=3;  
  41. d1.B2::fun();  
  42. return 0;  

延伸 · 阅读

精彩推荐