C++——模板---函式模板---類模板
阿新 • • 發佈:2019-01-13
一、模板
- 模板的引入:
- 模板的精神:型別引數化,即型別也是一種引數。
- template所代表的泛型程式設計是C++語言中的重要組成部分。C++是一門強型別語言,無法像動態語言(如python)那樣,編寫一段通用的邏輯,可以把任意型別的變數傳進去。泛型程式設計彌補了這一點擺脫了型別的限制,提高了程式碼的可重用性。
- 模板是建立通用的與資料型別無關的演算法的重要手段,可實現程式碼重用。
- 函式模板的定義與宣告:---函式模板實參推演
- 定義:
- template<模板引數表>返回值型別 函式名(函式形參表){......}//函式體
- 模板引數主要是模板型別引數,尖括號中不能為空。模板型別引數由typename(或class)+識別符號構成。表示該識別符號代表一種潛在的內建或使用者自定義資料型別。
- template<模板引數表>返回值型別 函式名(函式形參表){......}//函式體
- 宣告:
- 函式模板的宣告與函式宣告不同,函式模板的宣告必須含變數名。因為兩者的編譯過程不一樣。函式模板必須先轉換成模板函式,再進行編譯。模板定義本身不參與編譯,而是編譯器模板的使用者使用模板時提供的型別引數生成程式碼,再進行編譯。這一過程成為模板的例項化。使用者提供不同的型別引數就會例項化出不同的程式碼。
- 定義:
- 類模板的定義與宣告:---類模板例項化
- 定義:
-
template<模板引數表> class
模板引數表有兩種:模板型別引數和非模板型別引數。
-
- 定義:
後續吃個飯回來補充!!!!