C 入門基礎 十 模板 類模板 模板函式總結

2021-10-22 18:24:44 字數 1628 閱讀 9042

&emsp有句話是這麼說的:世界是由懶人創造的,在我們的計算機世界中同樣如此。我們之前說到,為了將同乙個功能的實現簡單化,我們學習了過載的相關知識,但是過載也有乙個缺陷,就是需要將不同型別的變數所對應的函式一 一寫出,就比如我們想要實現兩個數的交換,那麼問題來了,這個數有int、double、char等等型別,如果要滿足任意型別的交換是不是要寫好多的過載函式?那完全大可不必,為了方便絕大多數的「懶人」,c++便又推出了一項黑科技——模板,在定義函式時我們先不規定是什麼型別的,只要你來我都可以接受,之後在呼叫時,我們再進行匹配,減少了太多的**量了。下面我們來具體了解一下。

&emsp模板函式正如它的名字一樣,是乙個函式系列的模板,該模板與函式的引數型別無關,它是根據實參型別的變化從而自動匹配產生特定的函式版本。

函式模板的書寫格式:

template返回值型別 函式名稱(引數列表)

函式模板的使用形式舉例

#include

using

namespace std;

//單一型別的引數

template

<

typename t>

t&max

(t& num1, t& num2)

//多個虛型別

【引數的匹配原則】

類模板的形式與函式模板的使用方式類似。這裡直接看格式

template

class 類名

比如我們定義順序表的類

#include

using

namespace std;

template

<

class

t>

//順序表中儲存的資料型別不唯一

class

list

t list_at

(size_t pos)

;//類外定義

private

: t* _data;

size_t _size;

size_t _capacity;

};

同樣需要在外部進行泛型的宣告,具體如下:

比如我們需要找到其中某乙個位置的值

template

<

class

t>

t list

::list_at

(size_t pos)

int

main()

C 中的模板(類模板 模板類 模板函式)

1 class 一般class用於定義類,在模板引入c 後,最初定義模板的方法為 template,這裡class關鍵字表明t是乙個型別 2 typename 為了避免class在這兩個地方的使用可能給人帶來混淆,所以引入了typename這個關鍵字,它的作用同class一樣表明後面的符號為乙個型別...

c 模板入門,泛型程式設計 函式模板 類模板

目錄 1.泛型程式設計 2.函式模板 2.1 函式模板概念 2.2函式模板格式 2.3 函式模板的原理 2.4 函式模板的例項化 2.5 模板引數的匹配原則 3.類模板 3.1 類模板的定義格式 3.2 類模板的例項化 如何實現乙個通用的交換函式?使用函式過載雖然可以實現,但是有一下幾個不好的地方 ...

類模板,模板類和函式模板,模板函式

單整數類 雙整數類 所以c艹跟其他強型別語言為我們提供了乙個所謂模版功能 變數型別 整數 類模板的重點是模板。表示的是乙個模板,專門用於產生類的模子。例子 1 template 2 class vector 3 使用這個vector模板就可以產生很多的class 類 vector vector ve...