函数重载概念

只有C++才有重载的概念,C语言没有。

靠行参列表的不同来区别不同的重载函数,

若是全局函数和成员函数同名时,不算重载,因为它们的作用域不同,所以成员函数会将全局函数给隐藏(遮蔽)了。

成员函数的重载,覆盖和隐藏

重载发生在相同的作用域中,而覆盖则发生在不同的作用域中

重载:

相同的作用域

函数的名字相同

函数的形参列表,顺序,类型,个数不同

virtual可有可无

覆盖:

作用域不同,属于不同的类中

函数的名字相同

形参列表相同

基类必须是虚函数

隐藏是指派生类的成员函数遮蔽了与其同名的基类成员函数

》》派生类的成员函数与基类的同名,但形参列表不同,这时不论基类是否是virtual基类函数都将被隐藏

》》派生类的成员函数与基类的同名,行参列表相同,而基类成员函数不是virtual,会被隐藏

》》指针的静态类型即指针定义时的类型,与后面的赋值的类型无关。

2. 运算符的重载

(1)不能重载的运算符(考点)

"."    ".*"    "?:"      "sizeof()"     "typeid()"       "static_cast<>"    "dynamic_cast<>"      "const_cast<>"

"#"    "##"

(2)如果重载为成员函数,则this对象发起对它的调用

(3)如果重载为全局函数,则第一个参数发起对它的调用。

const成员函数:

(1)const成员函,const关键字放在函数的末尾。

(2)函数的内部不会修改任何数据成员。

(3)不能在函数内部修改数据成员和调用其他的非const函数。

(4)const成员函数和返回const类型没有必然的联系。

(5)static成员函数一定不能定义为const的,static成员函数只是全局函数的一个形式上的封装,全局函数

没有const一说。

注意:

const对象只能调用const成员函数,而非const对象既可以调用const成员函数,又可以调用非const成员函数。

最新文章

  1. nginx启动、关闭、重启
  2. Swift的关键字
  3. webpack入坑之旅(二)loader入门
  4. Aspect Oriented Programming using Interceptors within Castle Windsor and ABP Framework AOP
  5. LInux SSH远程文件/目录传输命令scp(转载)
  6. perl install module as non-root user
  7. Angular 全局页面切换动画 me-pageloading
  8. android 04 AbsoluteLayout
  9. 如何安装chrome扩展?比如json-handle插件如何安装
  10. 安装Ubuntu时的硬盘分区
  11. 最新版redis的安装及配置 linux系统
  12. Scala 快速入门
  13. Mac Pro 坑记录
  14. 一个简单的Quartz定时任务
  15. selenium中的上传文件
  16. CloudFoundry 之 IBMCloud 项目部署java例子
  17. CSS-联合选择器
  18. OCM_第十六天课程:Section7 &mdash;》GI 及 ASM 安装配置 _安装 GRID 软件/创建和管理 ASM 磁盘组/创建和管理 ASM 实例
  19. 性能测试三十二:监控之Java线程监控
  20. 理解js事件循环(event loop)

热门文章

  1. 2. UITest相关APIs
  2. hihocoder offer收割编程练习赛8 A 小Ho的强迫症
  3. Android源码分析笔记--Handler机制
  4. C#调用dll(Java方法)
  5. JDBC优化策略总结
  6. 纯css滚动公告栏目
  7. AS400服务程序总结
  8. 关于Ubuntu上的服务文件
  9. dig - 发送域名查询信息包到域名服务器
  10. Python matlab octave 矩阵运算基础