什麼是模板
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 支援引數化多型的工具,使用模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數 返...