1. #include<iostream>
    2. using namespace std;
    3. class Base
    4. {
    5. public:
    6. Base()
    7. {
    8. m_a=100;
    9. }
    10. void show()
    11. {
    12. cout<<" Base 的show函数调用"<<endl;
    13. }
    14. void show(int a)
    15. {
    16. cout<<"Base 的show(int a)函数调用"<<endl;
    17. }
    18. int m_a;
    19. };
    20. class son:public Base
    21. {
    22. public:
    23. son()
    24. {
    25. m_a=200;
    26. }
    27. void show()
    28. {
    29. cout<<"son 的show函数调用"<<endl;
    30. }
    31. int m_a;
    32. };
    33. //同名成员属性处理:
    34. void show01()
    35. {
    36. son p;
    37. cout<<"son 的 m_a="<<p.m_a<<endl;//直接调用是子类中同名成员函数
    38. cout<<"Base 的 m_a="<<p.Base::m_a<<endl;//这种形式是调用父类中的成员函数
    39. }
    40. //同名成员函数处理:
    41. void show02()
    42. {
    43. son p2;
    44. p2.show();//直接调用是子类中同名成员函数
    45. p2.Base::show();//这种形式是调用父类中的成员函数
    46. //如果子类中出现和父类中同名的成员函数 子类中的同名成员函数归隐藏掉父类中的所有同名成员函数
    47. //如果想要访问到父类中的同名成员函数,需要加作用域。
    48. p2.Base::show(100);
    49. }
    50. int main()
    51. {
    52. show01();
    53. show02();
    54. return 0;
    55. }

    总结:
    1:子类对象可以直接访问到子类中同名的成员
    2:子类对象加作用域可以访问到父类中的同名成员
    3:当子类与父类拥有同名成员函数,子类会隐藏掉父类中所有同名成员函数,加作用域可以访问到父类中的同名成员函数。

    网址:https://www.bilibili.com/video/BV1et411b73Z?p=131