先来看一个最简单的例子
#include "stdafx.h"
double sum(double a, double b)
{
printf("double 被调用\r\n");
return a+b;
}
int sum(int a, int b)
{
printf("int 被调用!\r\n");
return a+b;
}
int main(int argc, char* argv[])
{
sum(1,2);
sum(1.1,2.2);
return 0;
}
大家想一个问题,为啥能被正确的调用?虽然函数名字相同?
想过之后,大家通常会看到有的书这么说。
重载函数,不能以返回值来衡量,只能靠他的参数列表!
参数列表中的const限定符也不可以?这是为什么?
这个是因为 要调用一个函数,必须确定这个函数的唯一性,如果两个函数一个返回 int 一个返回 int *
但是这两个都是整数,你无法确定到底调用哪个!