C++ 之函数重载、函数隐藏、多态与函数覆盖

函数重载

条件:同一个作用域中具有多个同名函数,但每个同名函数的参数列表都不相同。与函数返回类型无关。

函数隐藏

条件:基类与派生类具有同名函数。
情况1、在基类中没有使用virtual关键字对成员函数进行声明,而派生类中的同名成员函数的参数列表(参数类型、顺序、个数)与基类完全一致。
情况2、不管基类中的成员函数是否使用virtual关键字进行声明,派生类中的同名成员函数的参数列表(参数类型、顺序、个数)与基类不同。与重载有所区别。
在发生隐藏时,在派生类中可以显式调用父类的同名函数,如Father::function(),直接写明了调用的是父类的function函数而不是子类的。

多态与函数覆盖

C++的多态特性正是通过虚函数来实现的,所以函数覆盖与多态总是关联的。程序在运行时根据对象的实际类型进行对应的方法调用,基类调用基类的方法,派生类调用派生类的方法。
条件:
1、基类中的成员函数必须使用vietual关键字进行声明,即定义为虚函数。
2、发生覆盖的两个成员函数必须位于基类和派生类中。
3、在派生类中重写基类中使用virtual关键字进行声明的成员函数。
4、发生重载的两个成员函数的函数名和参数列表(参数类型、顺序、个数)必须完全一致。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值