博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++继承中同名成员处理
阅读量:4695 次
发布时间:2019-06-09

本文共 1043 字,大约阅读时间需要 3 分钟。

所谓同名成员也就是 子类与父类 变量或者成员函数重名

看看以下代码,了解访问方式

1 #include
2 using namespace std; 3 4 class father 5 { 6 public: 7 int a = 100; 8 void fun() 9 {10 cout << "father fun " << endl;11 }12 void fun(int x)13 {14 a = x;15 cout << a << endl;16 }17 protected:18 int b;19 private:20 int c;21 };22 23 class son1:public father24 {25 public:26 void fun()27 {28 cout << "son1 fun " << endl;29 }30 int a = 200;//同名变量31 };32 33 void test01()34 {35 son1 s1;36 cout << s1.a << endl;//这是子类的a输出是20037 38 cout << s1.father::a << endl;//这是父类的a输出100,访问是需要作用域39 }40 41 //接下来看看同名成员函数42 void test02()43 {44 son1 s1;45 //和上面一样的46 s1.fun();47 s1.father::fun();48 //s1.fun(110);是不允许的非法的因为子类的同名函数会隐藏父类的同名函数49 s1.father::fun(110);50 }51 int main()52 {53 //test01();54 test02();55 return 0;56 }

我们可以得出结论

1.子类可以直接访问子类中的同名成员

2.子类可以通过添加作用域来访问父类中的同名成员

3.子类中的同名函数会隐藏父类的同名函数,调用时要加作用域

转载于:https://www.cnblogs.com/mch5201314/p/11594193.html

你可能感兴趣的文章
(转)Maven仓库——私服介绍
查看>>
设计模式之工厂模式
查看>>
仿复制粘贴功能,长按弹出tips的实现
查看>>
Kubernetes-Host网络模式应用
查看>>
第三次作业
查看>>
使用HTML5构建iOS原生APP(2)
查看>>
sqlplus terminators - Semicolumn (;), slash (/) and a blank line
查看>>
省选知识清单/计划列表(咕?)
查看>>
远程桌面(3389)复制(拖动)文件
查看>>
转 lucene3搜索引擎,索引建立搜索排序分页高亮显示, IKAnalyzer分词
查看>>
9结构型模式之代理模式
查看>>
Python 序列
查看>>
java数组基本操作
查看>>
String的indexOf()用于获取字符串中某个子字符串的位置
查看>>
CodeForces 1B
查看>>
win10应用UserControl
查看>>
BZOJ4516: [Sdoi2016]生成魔咒(后缀自动机)
查看>>
查看手机已经记住的WIFI密码
查看>>
最新版IntelliJ IDEA2019 破解教程(2019.08.07-情人节更新)
查看>>
我是怎么用缠论在商品里边抢钱之二 (2019-07-12 15:10:10)
查看>>