c++中的template可以用來宣告函式模板和類模板,講到函式模板,就難免想到引數預設值。
以下是幾個例子,用來說明,template中引數預設值的使用。
按照最初的設想,直接在函式宣告處給引數賦預設值。無法通過編譯,會提示無法找到對應的函式宣告。如例1。
發現是無法生成預設值對應的模板函式,給模板函式的型別也賦預設值後,能夠正常生成形如void print(t, ts&)的函式。其中,型別ts的預設值要與引數os的預設值相符合。如例2。
對於類模板中的函式,則不存在類似的問題。因為類模板必須指明模板引數的型別。如例3。
#includeusing namespace std;執行結果:template//沒有給ts賦預設值
void print(t input,ts& os=cout)
static void print(t input,ts& os=cout)
hello templatehello template in class
按回車鍵返回
C 11 模板函式的預設模板引數
一 深入理解c 11 裡的兩句話 c 98中,引入了函式模板和類模板,允許模板類宣告的時候有預設模板引數,但是不支援函式模板。c 11 開始支援,區別是模板函式的預設模板引數不需要 從右往左 依次指定。特別,模板引數的預設形參不是模板引數推導的依據。二 include 模板類的預設模板引數的順序從右...
c 函式中的預設引數
函式的預設引數值,即在定義引數的時候同時給它乙個初始值。在呼叫函式的時候,我們可以省略含有預設值的引數。也就是說,如果使用者指定了引數值,則使用使用者指定的值,否則使用預設引數的值。void func int i 1,float f 2.0f,double d 3.0 int main void 引...
C 中函式的預設引數
在c 中增加了函式的預設引數這一功能。在c 中,可以為函式宣告的時候為函式提供乙個預設值,當呼叫該函式的時候,如果沒有函式引數的值,則會使用預設值。例如下面的 include int func int x 0 函式的宣告 int main int argc,char ar int func int ...