#include<iostream>
using namespace std;
int add(int x);
int add(int x,int y=5);
int main()
{
int a=2,b=7,z;
float c;
z=add(a,b);
c=add(a);
return 0;}
int add(int x){return x+x;}
int add(int x,int y){return x+y;}
你给第二个add函数的第二个参数给了默认值,那你如果add(a)这样去调用,编译器是不知道应该执行哪个add函数的。add(a)可以理解成add(a)去调用第一个add函数,也可以理解成add(a, 5)去调用第二个add函数。
重载不支持默认参数吧?
你调用个 add(2),到底让系统怎么选?
因为使用c=add(a)时,不知道使用哪一个函数,一个函数参数有一个,但另一个函数参数虽然有两个,但另一个有默认参数值