我想明白了一塊的C++代碼11功能相同。
類包含如下兩個功能:有和沒有模板
class abc
{
public:
void integerA(int x);
template<typename typ>
void integerA(typ x);
};
我無法理解宣佈2種相同功能的好處。爲什麼不聲明一個模板函數?
只有一個好處,我可以假設是,我們知道它可以傳遞給這個函數int
數據類型。這可能會快一點。但是對於這個問題,我們是否真的需要用int
數據類型創建一個單獨的函數?
「我無法理解,宣佈2種相同功能的好處」:由於我們可能想要專門化'void integerA(int x)'來做其他事情。 – 101010
@ 101010您可能想嘗試將其作爲答案。 – Sinkingpoint
闡述101010指出的內容:如果用int參數調用integerA,則將調用非模板函數。如果用例如浮標或其他類型,例如一個你自己的類,這個模板函數將被調用。這允許你爲整數做一些特殊的事情。模板專門化機制是函數重載機制的擴展。這是相當強大的(有時有點複雜,尤其是與多個參數), –