C++学习day2之函数重载

#include<iostream>
using namespace std;

/*
 *函数重载:同一个东西表示两个不同的意思,俩个不同的意思怎么区分呢,由语境决定,C语言里面函数名是不能相同的。
 *
 *int func(int a)
 *int func(char b)
 *如果你int a=10;func(a)的话就是调用的int func(int a),看语境的。
 *重载就是名字相同,意义不同。意义如何不同呢,就是上下文的语境决定的
 *什么时候构成重载呢,1.函数名相同,函数参数列表不同。具体来说就是类型 个数,顺序
 函数重载其实也叫静多态,同一个名字展现出不同的输出结果。

 匹配原则:严格匹配,找到则调用。你是int就是int,你是double就是double
 如果找不到合适的,通过隐式转换寻求一个匹配,找到则调用。隐式转换就是小到大可以,但是大到小不行,如果隐式转换了,哪个在前就调用那个,比如下面的这段程序就是调用前面的
 *
 *
 */
/*
void print(double a)
{
    printf("print(int a)\n");
}

void print(int  a)
{
    printf("print(double a)\n");
}
int main()
{
    print('a');
    return 0;
}
*/
/*
 *
 *
 *记得,如果double如果函数重载,有两个函数是void print(int a) void print(float b) 这样就会报错,因为他不知道转换成哪一个
 *如下面这段程序
 还有一个就是int 转换成long 和double也会造成困惑,记住这两个特殊的就行了
 函数类型不构成重载
 重载的原理 ,
*/
/*
void print(int a)
{
    printf("void print(int a)\n");

}
void print(float b)
{
    printf("void print(float b)\n");
}
int main()
{
    print(3.3);
    return 0;
}
*/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值