C++開發:template,模板
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等)替換。通過將型別作為引數,傳遞給模板,可使編譯器生成該型別的函式。
相關文章
- C++基礎::變數模板(variable template)C++變數
- C++模板超程式設計(C++ template metaprogramming)C++程式設計
- Django模板templateDjango
- 模板方法模式(Template)模式
- c++11-17 模板核心知識(十二)—— 模板的模板引數 Template Template ParametersC++
- Python:Template模板字串Python字串
- c++11-17 模板核心知識(十四)—— 解析模板之依賴型模板名稱 Dependent Names of Templates(.template/->template/::template)C++
- Go HTML/template 模板使用方法GoHTML
- OpenFaaS實戰之四:模板操作(template)
- go 模板(template)的常用基本語法Go
- html/template 模板range輸出問題HTML
- Java設計模式之模板模式(Template )Java設計模式
- 《React Native高效開發》之 templateReact Native
- NX二次開發-使用NXOPEN C++嚮導模板做二次開發C++
- C++——模板C++
- ABAP,Java,JavaScript裡的字串模板String TemplateJavaScript字串
- 【ES6基礎】模板字串(Template String)字串
- js模板引擎art template陣列渲染的方法JS陣列
- C#設計模式-模板方法模式(Template Method)C#設計模式
- 設計模式之---模板方法template method的使用設計模式
- nodejs基於art-template模板引擎生成NodeJS
- c++ 模板類C++
- c++模板類C++
- C#設計模式系列:模板方法模式(Template Method)C#設計模式
- JAVA設計模式之 模板方法模式【Template Method Pattern】Java設計模式
- C++ Curiously Recurring Template Prattern(CRTP)例程C++
- Elasticsearch之索引模板index template與索引別名index aliasElasticsearch索引Index
- 設計模式的征途—17.模板方法(Template Method)模式設計模式
- 設計模式--模板方法模式Template method(類行為型)設計模式
- ArcGIS API for Silverlight程式碼中使用Template模板API
- DiscuzX2.5完整目錄結構【模板目錄template】
- Flask web開發(3):模板FlaskWeb
- C++模板沉思錄C++
- c++函式模板C++函式
- C++ 模板與STLC++
- C++類 使用template 如何封裝為DLLC++封裝
- 多module開發時module模板外掛開發
- 談一談我對‘模板方法’設計模式的理解(Template)設計模式