博客
关于我
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/

你可能感兴趣的文章
一位年轻而优秀的.NET开发者的成长点滴
查看>>
如何使用ABP进行软件开发(1) 基础概览
查看>>
第三周总结
查看>>
Spark学习之SparkStreaming
查看>>
AlwaysOn配置时在连接步骤时报错(35250)
查看>>
排序算法之总结
查看>>
微软云Linux服务器 Mysql、tomcat远程连接错误解决办法
查看>>
Java基础知识回顾之六 ----- IO流
查看>>
React 函数式组件的 Ref 和子组件访问(useImperativeHandle)
查看>>
Python数据分析(二): Numpy技巧 (2/4)
查看>>
09 . Python3之常用模块
查看>>
Python学习笔记-StatsModels 统计回归(3)模型数据的准备
查看>>
Velocity.js初步
查看>>
yarn出现“There are no scenarios ; must have at least one"
查看>>
Ubuntu16.04中php如何切换版本
查看>>
nginx上配置phpmyadmin
查看>>
HustOJ二次开发之修改数据库连接池
查看>>
SpringBoot之整合Dubbo
查看>>
Drools之关键字及错误信息
查看>>
redis集群报错:(error) CLUSTERDOWN Hash slot not served
查看>>