随笔 - 322  文章 - 0  评论 - 4  阅读 - 77146

C++ //继承同名成员处理方式

复制代码
 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 class Base
 6 {
 7 public:
 8     Base()
 9     {
10         m_A = 100;
11     }
12     void func()
13     {
14         cout << "Base -func()调用" << endl;
15     }
16     int m_A;
17 
18     void func(int a)
19     {
20         cout << "Base -func(int a)调用" << endl;
21     }
22 
23 
24 };
25 
26 class Son : public Base
27 {
28 public:
29     Son()
30     {
31         m_A = 200;
32     }
33 
34     void func()
35     {
36         cout << "Son -func()调用" << endl;
37     }
38 
39     void func(int a)
40     {
41         cout << "Son -func(int a)调用" << endl;
42     }
43 
44 
45     int m_A;
46 };
47 
48 //同名成员属性处理
49 void test01()
50 {
51     Son s;
52     cout << "Son m_A= " << s.m_A << endl;
53     //Base b;
54     //如果通过子类对象 访问到父类中的同名对象 要在子类后面加 父类的作用域
55     cout << "Base m_A= " << s.Base::m_A << endl;
56     //cout << "Base m_A= " << b.m_A << endl;
57 }
58 
59 //同名成员函数处理
60 void test02()
61 {
62     Son s;
63     s.func();  //直接调用的是: 子类用的同名成员
64 
65     //如何调用父类中的同名函数
66     s.Base::func();
67 
68     //如果子类出现和父类中的同名的成员函数 子类的同名成员会隐藏掉
69     //父类中所有的同名成员函数
70 
71     //如果想访问到父类中被隐藏的同名成员函数 需要加作用域
72     s.func(100);
73     s.Base::func(200);
74 
75 }
76 int main()
77 {
78 
79     //test01();
80     test02();
81 
82     system("pause");
83 
84     return 0;
85 
86 }
复制代码

 

posted on   Bytezero!  阅读(44)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示