【C++】【学习笔记】【006】函数的重载

重载的概念:
1、C++里的函数重载(overloading)机制比我们此前见到的东西都高深,这种语言的灵活性和强大功能在它身上体现得淋漓尽致。
2、所谓函数重载的实质就是用同样的名字再定义一个有着不同参数但有着同样用途的函数(人格分裂、多重身份...)
3、注意:可以是参数个数上的不同,也可以是参数数据类型上的不同!
4、重载不是一个真正的面向对象特征,它只是可以简化编程工作的一种方案,而简化工作正是C++语言的追求。

重载的注意点:
1、对函数(方法)进行重载一定要谨慎,不要“无的放矢”或“乱点鸳鸯”;
2、要知道重载函数越多,该程序就越不容易看懂;
3、注意区分重载和覆盖(后面章节讲);
4、我们只能通过不同参数进行重载,但不能通过不同的返回值(尽管后者也是一种区别);
5、最后,对函数进行重载的目的是为了方便对不同数据类型进行同样的处理。

练习:
1、为什么不能通过返回值不同来重载函数(方法)呢?
   比如:有两个重载函数:
       int func(){}
       char func(){}
   当调用函数func();时,编译器并不知道应该调用哪个函数。    
    
2、利用重载函数的方法设计一个程序,该程序通过函数calc()进行计算并返回显示结果;
    - 当传入一个参数时,计算该参数的平方值;
    - 当传入两个参数时,计算两个参数的积;
    - 当传入三个参数时,计算三个参数的和。

#include <iostream>

int calc(int m)
{
    std::cout << "One para." << "\n";
    return m * m;
}

int calc(int m, int n)
{
    std::cout << "Two paras." << "\n";
    return m * n;
}

int calc(int m, int n, int o)
{
    std::cout << "Three paras." << "\n";
    return m + n + o;
}

int main()
{
    std::cout << calc(3) << std::endl;
    std::cout << calc(4, 5) << std::endl;
    std::cout << calc(10, 12, 14) << std::endl;
    return 0;
}
输出:
One para.
9
Two paras.
20
Three paras.
36



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值