通过使用模板:模板类型的含义是什么?
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);
当升和米是整数,其是远离双远不同?
'为什么我需要这样做?':你不需要。 '为什么这样编译?':'T'被设置为'long'。 “长”可以隐式转换为“双”。它和'double v = m'一样; – 101010