cpp 重载 覆盖 隐藏

重载(Overload):
---------------
在同一可访问区内被声名的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函
数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制叫重载。

重载不关心函数的返回值类型。如  int f(int )  float f(int) 不能构成重载

覆盖 (Override)
----------------
是指派生类中存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应
被覆盖的函数 严格一致 ,覆盖函数和被覆盖函数只有函数体(花括号中的部分)不同,当
派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖
函数版本,这种机制就叫做覆盖。


成员函数被重载的特征有:
1) 相同的范围( 在同一个类中 );
2) 函数名字相同;
3) 参数不同;
4) virtual 关键字可有可无。

覆盖的特征有:
1) 不同的范围( 分别位于派生类与基类 );
2) 函数名字相同;
3) 参数相同;
4) 基类函数必须有 virtual 关键字。


隐藏(Hide)
----------
是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
1) 如果派生类的函数与基类的函数同名,但是参数不同。此时, 不论有无 virtual 关键>字 ,基类的函数将被隐藏( 注意别与重载混淆) 。
2) 如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有 virtual 关
键字。此时,基类的函数被隐藏 (注意别与覆盖混淆) 。

以上转载了一些定义

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值