1. 运行出错并不代表不支持重载。如果下面的程序不能运行,才是真正不支持重载。
#include<stdio.h>
double max(int a ,double b){printf("111");return 0;}
double max(double a,int b){printf("222");return 0;}
void main()
{
max(1.0,2);
}
2. max(1, 2)不管怎么样都是不对的,支持重载的时候会造成2义性,而max(1.0, 2) 或 max(1, 2.0)就是对的了。
3. 这个题可以这么答:如果支持重载,可以这样定义函数,尽管不怎么好,但max(1, 2)的调用方式是错的。