函數模板與類模板

模板其實就相當於提供一個類型變量,調用時再指定此類型變量具體爲什麼類型


1. 函數模板

例如:

int add(int a, intb)

{

return a+b;

}


double add(doublea, double b)

{

return a+b;

}


它們除了類型不一樣外,算法都是一樣的,所以可以改成一個函數,函數參數和返回值類型爲可變化即可。

template <typename X, class Y> //聲明兩個類型變量

X add(X a, Y b)

{

return a+b;

}


//調用時指定類型變量具體爲什麼類型:

add<int,char>(111,22);

add<int,double>(11,22.111);



2. 類模板

其實就類裏有類型不指定的屬性成員,創建對象時指定具體的類型

template <class BB>

class Node {

private:

BB data;

public:

Node(BB d);

};


template <class BB>

Node<BB>::Node(BB d)

{

data = d;

}


使用: Node<int> a(88);

Node<Animal> b(Animal a);



注意一般情況下,模板的名字都是用”T”

template <class T>

本文由廣州尚觀科技發佈。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章