书上说:一个函数不能既作为重载函数,又作为有默认参数的函数。理由是:当调用函数时如果少写一个参数,系统无法判定是利用重载函数还是利用默认参数的函数,出现二义性,系统无法执行。
实际上这么说不对,请看下面例子,能够实现“一个函数不能既作为重载函数,又作为有默认参数的函数”。
#include<iostream>
using namespace std;
void f(int a, int b, int c)
{}
void f(int a, int b=0)
{}
int main( )
{
f(3);
f(2,3);
return 0;
}