天天看點

C++函數模闆C++函數模闆

C++函數模闆

函數模闆就像一個架構,可以放入任意值。例如:

#include <bits/stdc++.h>
using namespace std;
template <class type>
type sum(type a, type b)
{
	return a + b;
}
           

調用時type會自動填充類型,像是這樣調用:

傳回22(int)。或是這樣:

傳回46.9(float/double)。從這些例子裡可以看出:

sum函數無論兩個參數是神馬類型,都能自動填充type,讓代碼複用性增高。

還有一點,就是如果運作:

會報錯,因為在定義中a和b參數類型是同一個類型——type,是以它會顯示int型不能和double型相加!

一種是改變模闆,讓他适應兩種類型:

template <class c1, class c2>
//...
           

另一種就是調用代碼中,進行強制轉型或1.0 * (int變float/double)。

既然都能1.0 * xxx了,何苦不加個".0"讓Ta本身就是float/double?

也可以!

結果都一樣:

編譯成功

35.3
代碼運作結束
           

别忘了輸出,還有注意一點!

sum函數被填充後,此時type是float/double類型,切記!傳回值是float/double類型!傳回值是float/double類型!傳回值是float/double類型!(重要的事情說三遍)

附錄

别忘了給作者三連!

繼續閱讀