通過使用模板:模板類型的含義是什麼?
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