C++ 模板(template) 的定义
生活随笔
收集整理的這篇文章主要介紹了
C++ 模板(template) 的定义
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義:
模板(template)是實現代碼重用機制的一種工具,它可以實現類型參數化,把類型定義為參數(模板元編程),從而實現了真正的代碼可重用性。
模板是用來批量生成功能和形式都幾乎相同的代碼的。編譯器就能在需要的時候,根據模板自動生成程序的代碼。從同一個模板自動生成的代碼,形式幾乎是一樣的。 模板就像一個做餅干的模具,至于餅干是什么味道,則要看具體實例化時制作餅干的材料。
模板可以分為兩類,一個是函數模板,另外一個是類模板。
先舉個函數模板的栗子:
? 寫一個求和函數:
template<typename T> int sum(T a, T b) {return a>b; } //也可寫成template<class T> T是模板類型的名稱,可以apple可以是ABC <class apple> sum(15,16); // 這種不申明類型的寫法也是允許的 sum<int>(1, 2); sum<float>(1.0, 2.0); sum<long long >(1,2);再舉個類模板的例子:
寫一個stack
template <class T> class Stack {public:Stack();~Stack();void push(T t);T pop();bool isEmpty();private:T *m_pT; int m_maxSize;int m_size; }; template <class T> Stack<T>::Stack(){m_maxSize = 100; m_size = 0;m_pT = new T[m_maxSize]; } template <class T> Stack<T>::~Stack() {delete [] m_pT ; }template <class T> void Stack<T>::push(T t) {m_size++;m_pT[m_size - 1] = t;} template <class T> T Stack<T>::pop() {T t = m_pT[m_size - 1];m_size--;return t; } template <class T> bool Stack<T>::isEmpty() {return m_size == 0; }?
總結
以上是生活随笔為你收集整理的C++ 模板(template) 的定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络流--最大流--POJ 1273 D
- 下一篇: 图论--双连通分量--点双连通模板