c 泛型程式設計(一)模板

2021-10-02 23:41:26 字數 992 閱讀 7250

什麼是模板

1、模板是c++的一種特性,允許類或者函式可以泛型形式執行

2、模板可以使類或者函式在不同型別下執行,無需為每一種型別都編寫**

3、模板是一種復用的手段

什麼是函式模板

函式模板是建立乙個通用的函式,他的形參、返回型別和區域性變數都用乙個佔位符來表示,等到真正呼叫時,根據傳入的引數逆推出真正的型別。

什麼是類模板

c++不僅支援函式模板,也支援類模板。函式模板不僅可以用在函式宣告中,也可以用在函式定義中;類模板不僅可以用在類的宣告,也可以用在類的實現中(成員資料和成員函式),目的也是將資料型別引數化。

class a //類模板只能顯示例項化,沒法逆推

fun(1,2);

fun(1,2)//函式模板既可以顯示例項化,也可以逆推

例項

#include

using

namespace std;

template

<

class

t>

classa}

;int

main()

注意:在函式模板中佔位符t只能表示一種型別;

template

<

class

t>

void

fun(t a,t b)

fun(5,

5.3)

//t即表示int型,也表示double型,編譯時會出現錯誤

但類模板中卻是正確的;

a<

int> a;

a.fun(5

,5.3

)//正確,但會出現警告,可以將類型別改為double,因為int-double屬於自動型別轉換

C 泛型程式設計 模板

在學習c c 過程中,我們可能常用幾種函式,由於傳入的引數不同,需要進行不同的函式的編寫,在c語言中需要根據引數和功能的不同重新編寫新的函式,而在c 中有函式過載這樣的機制,一定程度上解決了問題,但是 過載的函式僅僅只是型別不同,的復用率比較低,只要有新型別出現時,就需要增加對應的函式 的可維護性比...

C 泛型程式設計(模板)

2.類模板 我們先來看乙個概念 泛型程式設計 使用模板,編寫和型別無關的 沒有模板之前,一些函式或者類,針對不同的型別需要寫很多重複的 函式 比如交換函式swap,假如傳入的資料型別不同,int,char,double。我們要實現不同的型別物件函式。類 比如我們像實現乙個資料結構棧stack,sta...

C 泛型程式設計 模板

0.所謂泛型程式設計就是獨立於任何特定型別的方式編寫 使用泛型程式時,需要提供具體程式例項所操作的型別或者值。我們經常用到stl容器 迭代器 和演算法都是泛型程式設計的例子 模板是c 支援引數化多型的工具,使用模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數 返...