c++函式模板
開發工具與關鍵技術:c++、visualstudio
模板是c++減少**量的一種機制。是把一些繁瑣的**去掉,條件是定義完全相同,資料型別不同,意思是把資料型別引數化,而型別引數化稱為引數模板,又為類屬。
c++則提供兩種模板機制,一種是類模板,一種是函式模板,函式模板就是我要講的,至於類模板和函式模板的用法差不多,但是比函式模板要複雜。模板是為了減少**量而誕生的機制,那麼函式模板在什麼時候要用到呢?上面有模板的條件,下面舉個例子。
例如:int imax(int x,int y)
return y;
}char cmax(char x ,char y)
return y;
}double dmax(double x, double y)
return y;
}從三個函式我們就可以看出模板重要性,首先它們的定義都是返回大的值,但是它們的資料型別不一樣,我們在不用模板的情況遇到這種情況都是有多少種資料型別需要用到,就要寫多少函式,雖然函式重定義,可以使我們不用糾結它的函式名但是卻增加了**量,也使得該軟體所需記憶體增加,函式模板則有可以使我們減輕**量,那麼函式模板是怎麼定義的,下面是前面例子的函式模板定義。
template
t tmax(t x,t y)
return y;
}這個函式模板我們只需寫乙個就可以了,而不用像上面的例子那樣寫那麼多**。下面是對該函式模板的呼叫測試結果。
當然模板也是有一定的缺點的,這是因為資料型別完全相同的情況下,
當存在不同的資料型別時,則需要我們對應的改變模板結構。下面是前面模板侷限的體現。
這就是模板的侷限性,所以我們可以根據自己的要求,用函式模板配合函式過載,可以使我們輕易的達到我們的要求,而且減少不必要的**。以上就是函式模板的內容。
c 函式模板
include using namespace std template t max t a,t b,t c int main int main int i1 185,i2 76,i3 567,i double d1 56.63,d2 90.23,d3 3214.78,d long g1 67854...
c 函式模板
關鍵字template總是放在模板的電腦關於與宣告的最前面,關鍵字後面是用逗號分隔的模板參數列,該列表是模板參數列,不能為空。模板引數可以是乙個模板型別引數,它代表了一種型別 也可以是乙個模板非型別引數,它代表了乙個常量表示式。模板型別引數由關鍵字class或typename後加乙個識別符號構成。在...
C 函式模板
c 提供了函式模板 function template 所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會根據實參的型別...