c++默认参数问题不使用重载

img

img


三个任意数求最大值,还不使用函数的重载。那这样子的话不会有数据类型转换的问题嘛help

你理解错了,不使用重载是让你使用一个函数实现多种参数的调用,比如如下的这个,
int max (int a,int b,int c);
实现这个函数,我们可以做到
max();
max(1);
max(1,2);
max(1,2,3);
这几种调用。
其实就是让你使用默认参数
int max (int a=-10,int b=0,int c = 1000);
此时我们就可以这样使用
max(10);
这句的意思是把10传递给参数a了,也就是说此时比较的是a(10)、b(0)、c(1000)的大小,返回的就是c,也就是1000了。
同理
使用
max(10,9999);
也就是说此时比较的是a(10)、b(9999)、c(1000)的大小,返回的就是b,也就是9999了。