c++ 重载和覆盖(virtual)

本文介绍了C++中的函数重载(同名不同参数)和函数覆盖(子类重写基类虚函数)概念,通过例子展示了如何在类层次结构中实现这两个特性以及多态的应用。
摘要由CSDN通过智能技术生成

1、函数重载,要求在同一个类里面,且函数名相同,参数列表不同,实现函数重载,系统会根据调用的函数参数具体匹配到使用的函数。

2、函数覆盖(使用virtual关键字)

函数覆盖发生在存在集成关系的不同类中,要求函数具有相同的函数名和参数列表。实例化的对象在调用函数时会自动调用子类中覆盖的函数,而不调用父类中virtual关键字的函数。需要覆盖功能的函数,只需要在父类中添加virtual关键字即可,子类中覆盖的函数不用加virtual关键字。

Sample:

--------------------------

class Base
{
public:Base(){}
public:
       virtual void print(){cout<<"Base";}
};
 ------------------------------------------------------------------
class Derived:public Base
{
public:Derived(){}
public:
       void print(){cout<<"Derived";}
};
--------------------------------------------------------------- 
int main()
{
       Base *point=new Derived();
       point->print();
}

-------------------------------------------------------------

Output:
Derived 
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值