c++<笔记> 重载 重写 重定义 覆盖 隐藏

c++<笔记> 重载 重写 重定义 覆盖 隐藏

一、重载 (overload)

<1> 相同作用域内,
<2>函数名称相同
<3>函数参数列表不同
<4>virtual 可有可无

void fun1(int x, int y );

void fun2 (float a,v b,float c);

函数名相同,参数列表相同,不是函数重载

在这里插入图片描述

二、重写==覆盖 (override)

派生行为中,子类对父类函数的操作,C++ 多态表现:
<1>父类函数virtual 标记,且不能为static
<2> 子类重写的父类函数 ,函数返回值相同、函数名相同、函数参数列表相同(个数、类型)
<3> 访问权限修饰符(private 、protected 、public)可以不同
<4> 子类重写父类的函数可以被 override 修饰
被virtual修饰的成员函数,无论他们是private/protect/public的,都会被统一放置到虚函数表中。对父类进行派生时,子类会继承到拥有相同偏移地址的虚函数标(相同偏移地址指的是各虚函数先后与VPTR指针的偏移),因此就允许子类对这些虚函数进行重写

三、重定义==隐藏 (redifine)

派生行为中,子类对父类函数的操作:
<1>函数名必须相同,参数列表可以不同、可以相同

总结

参考:
https://blog.csdn.net/zhejfl/article/details/90199200
https://blog.csdn.net/little_qi/article/details/78608437
https://www.cnblogs.com/zhangjxblog/p/8723291.html
https://www.e-learn.cn/topic/3788016
https://www.cnblogs.com/luxiaoxun/archive/2012/08/09/2630751.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值