C 中的模板

2021-05-27 21:04:32 字數 543 閱讀 1209

模板(template)利用一種完全通用的方法來設計函式或類而不必預先說明將被使用的每個物件的型別,利用模板功能可以構造相關的函式或類的系列,因此模板也可稱為引數化的型別。在c++語言中,模板可分為類模板(class template)和函式模板(function template)。

函式模板

通過前面知識的學習可知,在所定義的函式中,函式形參的型別是固定的,當呼叫函式時,實參的型別要與被調函式的形參型別保持一致,否則會出現型別不一致的錯誤。因此,對於功能相同而只是引數的型別不同的情況,也必須定義不同的函式來分別完成相應的功能,這顯然是很不靈活的。

c++語言中提供的函式模板功能就是為解決以上問題而提出的。c++語言提供的函式模板可以定義乙個對任何型別變數都可進行操作的函式,從而大大增強了函式設計的通用性。因為普通函式只能傳遞變數引數,而函式模板卻提供了傳遞型別的機制。

在c++語言中,使用函式模板的方法是先說明函式模板,然後例項化成相應的模板函式進行呼叫執行。

函式模板的一般說明形式如下:

template 《型別形參表》

返回值型別 函式名(形參表)

C 中的模板

1 什麼是模板?模板是一種不關注輸入 輸出資料型別,只關注資料處理相關演算法實現的程式設計,也稱為泛程式設計。自定義模板是開放人員根據需要設計的模板,其模板的編碼工作由開發人員完成,而標準模板是使用系統自帶的標準模板庫 stl 其模板的實現 不需要自己完成,開放人員可以直接使用。2 模板定義有何規則...

C 中的模板

c 中的模板大致分兩類 函式模板和類模板。模板的框架都是在函式前或者類前寫上 template 模板的實質為 將資料型別當引數傳遞,實現資料型別與演算法相分離。函式模板 函式模板 模板函式 函式模板 其呼叫的方式有隱式呼叫,即由編譯器自己推導,和宣告型別如myswap a,b 函式模板的機制 當宣告...

C 中的模板

兩種宣告方式 template template include templatevoid swap t t1,t t2 int main 非型別的函式模板引數 這裡的value就是非型別的模板引數 template t add const t x 格式 template class 類名 非型別的...