博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 过载,重写,隐藏
阅读量:6083 次
发布时间:2019-06-20

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

1、过载:在一个类中(也就是一个作用域),方法名相同,形参表不同的方法。

2、重写:父类方法使用virtual,子类方法和方法的方法名,形参表,返回类型相同,子类可以不使用virtual,但是建议使用virtual方法。

3、子类和父类的方法名相同,除了重写的情况下,都是隐藏。

4、为什么搞出隐藏?

  隐藏的本质就是,子类对象无法调用,与子类方法同名的父类方法。这样做有什么意义呢?

  首先考虑,Base有方法Say(),Derived有方法Say(int),子类对象调用方法的时候,少写了参数,比如derived.Say() 就会变成调用父类的方法,这和程序员的期望不一样。有了隐藏,编译器明确表示错误。

  其次,考虑多继承,两个父类有相同的方法,如果不隐藏,到底调用哪个方法呢?因此,还是隐藏吧。

  隐藏规则,比较难理解,但是有一定的合理性。

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

你可能感兴趣的文章
java中简单集合框架(二)
查看>>
函数返回局部变量的一些问题
查看>>
Solaris11性能监控--处理器
查看>>
内存模型
查看>>
如何快速开发网站?
查看>>
tomcat等服务器返回给页面的数字分别表示的意思!
查看>>
我的友情链接
查看>>
个人博客
查看>>
我的友情链接
查看>>
mysql 参数 innodb_flush_log_at_trx_commit
查看>>
Windows Server 2012 远程桌面,你需要具有通过远程桌面服务进行登录的权限
查看>>
Linux流量监控工具 – iftop
查看>>
【VMCloud云平台】SCCM(八)OSD(四)
查看>>
JavaTM Virtual Machine Profiler Interface (JVMPI)
查看>>
使用IKAnalyzer分词计算文章关键字并分享几个分词词典
查看>>
分布式进程管理
查看>>
Python下用List对员工信息表进行模糊匹配
查看>>
Mysql 主从复制
查看>>
【SQL Server备份恢复】数据库还原
查看>>
Angular js http请求发送和jquery的ajax一样的数据设置方式
查看>>