请问void x(int, char ch='a')和void x(int)为什么不可以重载

如上问题,因为看到课本说的函数名相同,变量类型或者变量个数不同就可以重载,我寻思这个变量类型不一样,个数也不一样,咋就不能重载了呢?谢谢各位!

void x(int , char y = ‘a’),这个有缺省值参数,所以实际的调用, 可以直接用 x(int)这样的方式调用,也可以x(int,char)的方式调用,可能和void x(int)一样,所以不能定义在同一程序块,也就不可以重载。