7、多继承语法.cpp 935 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. //4.6.7 多继承语法
  2. //C++允许一个类继承多个类
  3. //语法:class 子类:继承方式 父类1 , 继承方式 父类2...
  4. //多继承可能会引发父类中有同名成员出现,需要加作用域区分
  5. //C++实际开发中不建议使用多继承
  6. #include <iostream>
  7. class Base1
  8. {
  9. public:
  10. Base1()
  11. {
  12. m_A = 100;
  13. }
  14. int m_A;
  15. };
  16. class Base2
  17. {
  18. public:
  19. Base2()
  20. {
  21. m_A = 200;
  22. }
  23. int m_A;
  24. };
  25. //子类 需要继承Base1 和 Base2
  26. class Son :public Base1, public Base2
  27. {
  28. public:
  29. Son()
  30. {
  31. m_C = 300;
  32. m_D = 400;
  33. }
  34. int m_C;
  35. int m_D;
  36. };
  37. void test01()
  38. {
  39. Son s;
  40. std::cout << "sizeof Son = " << sizeof(Son) << std::endl;
  41. //当父类中出现同名成员 需要加作用域区分
  42. std::cout << "Base1::m_A = " << s.Base1::m_A << std::endl;
  43. std::cout << "Base2::m_B = " << s.Base2::m_A << std::endl;
  44. }
  45. int main()
  46. {
  47. test01();
  48. system("pause");
  49. return 0;
  50. }
  51. //多继承中如果父类中出现了同名情况,子类使用的时候要加作用域