13C++类的函数重载

 

13 类的函数重载   
( 前言 , 定义 , 基类与派生类 , 设计指导 )
1.( 前言 )  
1.1override与overload方法的区别
.overload :在同一类中 , 一个类中通过函数的参数类型不同或者个数不同中,编译器自动调用对应中函数的功能就是 overload( 重载方法 )
.override 在基类函数到派生类中,派生类用重写基类的同名函数的功能就是 override( 覆盖方法 )
 
1.2  所谓函数重载是指同一个函数名可以对应着多个函数的实现。
例如,可以给函数名 add() 定义多个函数实现,该函数的功能是求和,即求两个操作数的和。
Int sum(int x,int y){return x+y;}                              // int 之和
Double sum(Double x, Double y){return x+y;} // Double 之和
float sum(float x, float y){return x+y;}            // float 之和
每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。
这就是函数重载的概念。函数重载在类和对象的应用尤其重要。
函数重载要求编译器要求从函数参数的个数和类型上来区分 ,
能够唯一地确定调用一个函数时应执行哪个函数代码 .
 
2. 定义 ( 同类函数的重载 )
2.1 按参数的个数不同进行函数重载
    int sum(int a,int b){return a+b;}
    int sum(int a,int b,int c){return a+b+c;}
    int sum(int a,int b,int c,int d{return a+b+c+d;}
2.2 按参数的数据类型进行函数重载
Int sum(int x,int y){return x+y;}                      // int 之和
Double sum(Double x, Double y){return x+y;} // Double 之和
float sum(float x, float y){return x+y;}            // float 之和
 
3. 基类与派生类 (override 方法 )
在基类与派生类,通常用 override 方法实现重载基类函数
通常在派生类覆盖基类的同名函数来实现对基类的函数重载:在派生类想重载基类的函数,就得在派生类写一个与基类的同名函数,在派生类重写此基类的函数,在派生类调用时,基类的函数就被自动的隐藏掉
// 基类
class BaseClass{
public:
        void func() {};
};
// 派生类
class DrivedClass : public BaseClass{
public:
        void func()        {BaseClass::func();};// 在派生类对基类的同名函数进行 override
        void func(int test) {};
};
 
4.设计指导
1. 函数重载时,要求同名函数在参数个数上不同,或者参数类型不同,否则无法实现重载。
2. 在基类和派生类时,重载只在同一个类中发生,同一个名字的重载函数都必须出现在同一个域中。
3. 要清楚 override overload 的区别 :
在基类函数到派生类时用 override( 覆盖方法 );
在一个类中不同中函数实现时用 overload( 重载方法 )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值