函式模板 十六

2021-08-08 13:35:35 字數 757 閱讀 2596

一、簡介

正常的c++程式設計無法應對引數型別變化的問題,於是引入了模板,通過模板將型別作為乙個引數進行傳遞,通常可以通過型別的推演自動傳遞,如max(1,2)可以推導出兩個型別都為int,並將這個型別傳遞給函式,也可以通過直接定義進行傳遞,如max(1,2),這種就是明確的將型別作為引數傳遞。函式模板的執行時會根據傳遞的型別生成一些新的函式,稱為模板函式,而這部分內容是編譯器在後台完成的。函式模板的的定義方式如下:

template

type max(type x, type y)

當然也可以定義多種型別,如:

template

type1 max(type1 x,  type2 y)

二、例項

比如對於乙個求max的函式,可能該函式有多種型別的實參,如果用普通的c++來編寫需要定義很多個過載函式,所以採用函式模板來進行定義,具體如下:

#include

class test;

std::ostream& operator<<(std::ostream& out, const test& t);

class test

};std::ostream& operator<<(std::ostream& out, const test& t)

template

type max(type x, type y)

#include

#include "template.h"

int main(int argc, char** argv)

c 學習筆記(十六) 函式模板

函式模板 1 函式模板可以像普通函式一樣被過載 2 c 編譯器優先考慮普通函式 3 如果函式模板可以產生乙個更好的匹配,那麼選擇模板 4 可以通過空模板實參列表的語法限定編譯器只通過模板匹配 測試 int max int a,int b template告訴編譯器,這裡開始進行泛型程式設計 type...

模板 函式模板

c 程式設計 資料結構與程式設計方法 例15.8 利用函式過載技術,求兩個整數 字元 浮點數或字串中的較大值,需要編寫4個函式larger。而c 通過提供函式模板,簡化了過載函式據的過程。include using namespace std template type,模板的形參,用於確定函式的形...

函式模板和模板函式

1.函式模板的宣告和模板函式的生成 1.1函式模板的宣告 函式模板可以用來建立乙個通用的函式,以支援多種不同的形參,避免過載函式的函式體重複設計。它的最大特點是把函式使用的資料型別作為引數。函式模板的宣告形式為 template 返回型別 函式名 參數列 其中,template是定義模板函式的關鍵字...