C++開發:template,模板

Ted 456發表於2020-11-12

C++中的template,模板,是用來實現靜態多型的。比如建立一個template Class之後,玩家可以選擇他們想要的type,來建立一個想要的Class。
例子:

template <typename T>
class Test {
public:
	Max(T a1, T b1) :a(a1), b(b1) {};
private:
	T a;
	T b;
};

這時玩家可以這樣

int main() {
	Test<int> T(10, 20);
	cout << T.getA() << endl;

	Test<bool> Ted(false, true);
	cout << Ted.getA() << endl;
}

// 輸出10, 0

從getA(),我們可以看出,函式也可以使用模板來建立。

template <typename T>
T Max(const T & a, const T &  b) {
	return a > b ? a : b;
}

這個Max函式便可以根據輸入的資料型別來進行對應的大小判斷。

綜上,模板類可以幫助我們實現程式碼的靜態多型。其使用泛型來定義函式,其中泛型可用具體的型別(int 、double等)替換。通過將型別作為引數,傳遞給模板,可使編譯器生成該型別的函式。

相關文章