通过使用模板:
template <class T>
T GetMax (T a, T b) {
return (a>b?a:b);
}
接着
int main () {
int i=5, j=6, k;
long l=10, m=5, n;
k=GetMax(i,j); // line 1
n=GetMax<int>(l,m); // line 2
n=GetMax<double>(l,m); // line 3
cout << k << endl;
cout << n << endl;
return 0;
}
我的问题是:
为什么我需要这样做:
n=GetMax<int>(l,m); // line2
如果我能做到
n=GetMax(l,m); // line 2
为什么会编译?
n=GetMax<double>(l,m);
当l和m是与双精度相差甚远的整数时?