首先說幾個比較容易混淆的術語
1、函式指標——指標函式
函式指標的重點是指標,表示的是乙個指向函式的指標,例如int (*pf)();
指標函式的重點是函式,表示乙個返回指標的函式,例如int* fun();
2、陣列指標——指標陣列
陣列指標的重點是指標,表示乙個指向陣列的指標,例如int (*pa)[8];
指標陣列的重點是陣列,表示乙個由指標組成的陣列,例如int* ap[8];
3、類模板——模板類
類模板的重點是模板,表示乙個專門用於產生類的模板,例如
使用這個vector模板就可以產生很多class(類),templateclass vector
;
vector、vector、vector>、vector......
模板類的重點是類,表示由乙個模板生成而來的類,例如上面的vector、vector、......
全是模板類。
4、函式模板——模板函式
函式模板的的重點是模板,表示乙個專門用來生產函式的模板,例如
在運用時,可以顯式生產模板函式,templatevoid fun(t a)
;
fun
、fun
、fun......
,也可以在使用的過程中由編譯器進行模板引數推導來隱式生成,例如fun(6);//隱式生成funfun(8.9);、fun('a');、shape* ps = new circle; fun(ps);
模板函式的重點是函式,表示的是由乙個模板生成而來的函式,例如上面顯式或隱式生成的fun、fun......
都是模板函式。
模板本身的使用是很受限制的,一般來說,它們就只是乙個產生類和函式的模子。除此之外,運用的領域非常少了,所以不可能有什麼模板指標存在的,即指向模板的指標,這是因為在c++中,模板就是乙個**的**生產工具,在最終的**中,根本就沒有模板本身存在,只有模板具現出來的具體類和具體函式的**存在。類模板還可以作為模板的模板引數使用。
模板的具體實現——如用來處理string物件的棧類—被稱為例項化(instantiation)或具體化(specialization)。
templateclass stack
; type items[max]; //棧的大小固定
int top;
public:
stack():top(0) {};
bool isempty()
bool isfull()
bool push(const type & item);
bool pop(type & item);
};templatebool stack::push(const type & item)
else
return false;
}templatebool stack::pop(type & item)
else
return false;
}
一些常用的容器類模板構建 佇列
templateclass queuetp class node 定義乙個巢狀類node 該建構函式建立了乙個新結點,並將next指標置為空 node front node rear int items 佇列中的元素 const int qsize 佇列的大小 queuetp const queue...
c 模板類(實現棧的一些操作)
之前我寫過一篇c 的模板函式,這篇部落格使用模板函式和模板類實現一下簡易化的棧 模板函式的部落格位址 和定義函式模板一樣,我們可以定義類模板,泛型類宣告的一般形式如下 template class type class class name 然後我們簡單實現一下棧 include include i...
關於一些常用類
包裝類1 string類 string物件嗲表一組不可改變的unicode字串行 string物件變數實際是乙個倡廉物件 常用方法 length 獲取長度 split 分割字串 charat 獲取指定位置的字元 1 replace char oldchar,char newchar 將當前字串物件中...