c 函式模板基礎

2021-08-17 23:44:04 字數 868 閱讀 2278

1.為什麼會有函式模板

#includeusing namespace std;

//函式的業務邏輯一樣,函式的引數型別不一樣,比如說交換變數的值,變數可以是int型別,也可以是char型別,還可以是double型別

void myswap01(int &a, int &b)

void myswap02(char &a, char &b)

//讓型別引數化

//泛型程式設計

//tempalte 告訴c++編譯器要開始泛型程式設計了,看到t不要隨便報錯

templatevoid myswap(t &a, t &b)

//函式模板的呼叫:顯示型別呼叫 自動型別推導

int main()

2.用函式模板對字元數字和int陣列進行排序

#includeusing namespace std;

//函式模板本質:型別引數化

//對字元陣列和int陣列進行排序

templateint mysort(t *array, t2 size)

} }return 0;

}templateint myprint(t *array, t2 size)

return 0;

}int main()

; int size = sizeof(myarray) / sizeof(myarray[0]);

mysort(myarray, size);

myprint(myarray, size);

} //char 型別

system("pause");

return 0;

}

C 基礎 函式模板

模板用於生成不同的東西 函式或者類 在c 中有函式模板和類模板。場景 當我們需要自己實現print函式時,怎麼處理傳入引數型別 double int char,short string 不同的情況呢?函式過載 這意味著你至少要寫兩個以上的函式區支援你的引數型別和個數的變化,而且這種方法不支援擴充套件...

C 基礎 模板基礎與函式模板

求兩個int float char型別的資料的最大值 c裡面要這樣寫 int maxint int x,int y double maxdouble double x,double y char maxchar char x,char y c 使用函式過載 多個同名函式處理多種型別資料的語法現象 可...

C 函式模板基礎學習

1.template引數定義中,typename 和class 可以互換,盡量使用typename,不可以使用struct 2.模板引數可以使用任意型別,包括內建型別,自定義類,列舉等 3.模板引數名稱可以使用任意名稱 4.函式模板不是只編譯乙份滿足多重需要,而是為每一種例項化型別編譯乙份 5.只有...