理解C 模板

2021-10-11 21:46:52 字數 1355 閱讀 4037

模板就是實現**重用機制的一種工具, 模板通常在較大的**庫中使用,目的是實現**的可重用性和程式的靈活性。它可以實現型別引數化,即把型別定義為引數,從而實現了真正的**可重用性。模版可以分為兩類,乙個是函式模版,另外乙個是類模版。

宣告方式:

//t是乙個模板引數,它接受不同的資料型別(如int,float等),而class是關鍵字。可以使用關鍵字typename代替

classtemplate

t somefunction(t arg)

函式模板**:

#include

using

namespace std;

// template function

//template

template

//class和typename都可以

t larger

(t n1, t n2)

intmain()

宣告方式:

//t是模板引數,它是所使用資料型別的佔位符。在類內部,成員變數var和成員函式someoperation()均為t型別,對於函式看看是不是需要返回值

//可以class內部呼叫,也可以用物件進行呼叫

template class classname

public: t var;

t someoperation(t arg);

};使用:建立類模板物件

classname classobject;

例如:classname classobject;

classname classobject;

classname classobject;

#include

using

namespace std;

template

<

class

t>

class

calculator

void

displayresult()

t add()

t subtract()

t multiply()

t divide()

t test()

};intmain()

C 的模板理解

2 非型別模板引數 1.1 模板的概念 模板就是生成乙個通用的函式,這個函式可以接受任意資料型別的引數,可以返回任意型別的值。模板是泛型程式設計的基礎。所謂泛型程式設計就是編寫與型別無關的邏輯 是一種強大的復用方式。1.2 模板的分類 1.2.1 模板函式 template1 class 形參2,返...

C 模板的理解

泛型程式設計 函式模板 函式模板與型別無關,在使用時被引數化,根據實參型別產生函式的特定型別版本。templatevoid swap t left,t right int main 模板例項化 隱式例項化 templateadd const t left,const t right int main...

C 學習8 模板初步理解

類模板是在類的定義時,不能確定成員的型別時,為了防止 的冗餘,用t代替。t是乙個型別,告訴編譯器,型別還沒有繫結,不知道現在是什麼型別。使用的時候,類名後要用尖括號把型別名括起來。complex int a 1,2 complex double a 1.0,2.0 當編譯時,編譯器看到了使用者的t是...