Im這種卡在這個。我在一本書中讀到,我們可以使用函數模板創建泛型函數,但在其他地方,作者稱爲泛型函數,函數模板。女巫是適當的,例如:函數模板或Gereric函數是正確的術語?
template <class T> void printSmt(T x){}
在這裏printSmt
被稱爲泛型函數或函數模板?
而另一個問題是:x
函數參數列表中的printSmt
是泛型還是模板參數?
編輯:即時爲我的學校寫一些文件。如果有可能根據C++參考給我一個答案。
Im這種卡在這個。我在一本書中讀到,我們可以使用函數模板創建泛型函數,但在其他地方,作者稱爲泛型函數,函數模板。女巫是適當的,例如:函數模板或Gereric函數是正確的術語?
template <class T> void printSmt(T x){}
在這裏printSmt
被稱爲泛型函數或函數模板?
而另一個問題是:x
函數參數列表中的printSmt
是泛型還是模板參數?
編輯:即時爲我的學校寫一些文件。如果有可能根據C++參考給我一個答案。
C++標準將其稱爲函數模板。術語通用函數更多地用於其他面向對象的語言(例如,在LISP中,這些函數具有相同的名稱)。 Java使用泛型類型來實現泛型編程的最小途徑。
x
是函數參數。 T
是模板參數。 printSmt<int>()
int
是模板參數。
非常感謝。這正是我所期待的。 – FrozenFrog 2014-09-01 09:22:22
C++標準中沒有「通用函數」這樣的術語。 「通用」一詞更多地涉及通常涉及C++模板的編程風格。 – 2014-09-01 08:59:20
由於函數模板不是函數,所以我很不情願將函數模板稱爲「泛型函數」。這不是一個功能。 (相比之下,模板函數是一個函數。)在數學中,有時會出現一種奇怪的資格反轉(更合格的不是特定的),但是這不衛生,我們不需要拖入編程。 – 2014-09-01 09:01:02
'x'是函數的形式參數,就像在非模板函數中一樣。它的類型是'T',模板參數。我聽說過C++中沒有「泛型類型」。 (順便說一句:當你說「我讀了一本書」時,認爲包含書的標題和作者是一種很好的做法。) – molbdnilo 2014-09-01 09:15:14