c++函数重载问题

一个函数为void x(int ,char ch='a'),另一个函数为void x(int),它们可以在同一个程序中定义,但不能重载,为什么?
书上说,C++在同一个域中允许用同一个函数名定义多个函数,这时是函数重载。
那么上面两个函数,函数名相同,又可以定义,为什么不能重载呢?

有二义性,
当调用 x(2);两个函数都满足要求,不知调用那个。、。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-12
把void x(int ,char ch='a')改为void x(int ,char ch),就行了。
第2个回答  2013-04-12
因为第一个函数使用了默认参数,当使用x(a)形式调用时,编译器无法区分调用的是哪一个
第3个回答  2013-04-12
赞同,产生 了歧义
相似回答