博客
关于我
C++继承同名成员处理方式
阅读量:476 次
发布时间:2019-03-06

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

问题:当子类与父类出现同名的成员,如何通过子类对象,访问到子类或父类中同名的数据呢?

1.访问子类同名成员 直接访问即可

2.访问父类同名成员 需要加作用域
一、同名成员属性处理方式
代码如下:

#include 
using namespace std;class Base { public: Base() { m_A = 100; } int m_A;};class Son : public Base { public: Son() { m_A = 200; } int m_A;};void test01() { Son s; cout << "Son 下 m_A = " << s.m_A << endl; //如果通过子类对象 访问到父类中的同名成员 需要加作用域 cout << "Base 下 m_A = " << s.Base::m_A << endl;}int main() { test01(); return 0;}

二、同名成员函数处理方式

代码如下:

#include 
using namespace std;class Base { public: Base() { m_A = 100; } void func() { cout << "Base fun()调用" << endl; } void func(int a) { cout << "Base fun(int a)调用" << endl; } int m_A;};class Son : public Base { public: Son() { m_A = 200; } void func() { cout << "Son fun()调用" << endl; } int m_A;};void test01() { Son s; s.func();//直接调用 调用是子类中的同名成员 //如何调用父类中同名成员函数? s.Base::func(); s.Base::func(100);}int main() { test01(); return 0;}

注意:

1.如果子类中出现和父类同名的成员函数,子类的同名成员会隐藏掉父类中所有同名成员
2.如果需要访问到父类中被隐藏的同名成员函数,需要加作用域

转载地址:http://jeqdz.baihongyu.com/

你可能感兴趣的文章
js编写动态时钟
查看>>
JavaSE总结
查看>>
Consul安装使用
查看>>
手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
查看>>
Python IO编程
查看>>
CSS入门总结
查看>>
Django内置的响应类
查看>>
使用 TortoiseGit 时,报 Access denied 错误
查看>>
创建Silverlight 5浏览器内受信应用
查看>>
基于 HTML5 WebGL 的污水处理厂泵站自控系统
查看>>
java _this关键字的用法
查看>>
代码荣辱观-以运用风格为荣,以随意编码为耻
查看>>
SpringBoot启动原理
查看>>
[系列] Go gRPC 调试工具
查看>>
django-表单之模型表单渲染(六)
查看>>
c++之程序流程控制
查看>>
一位年轻而优秀的.NET开发者的成长点滴
查看>>
如何使用ABP进行软件开发(1) 基础概览
查看>>
第三周总结
查看>>
Spark学习之SparkStreaming
查看>>