日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 模板(template) 的定义

發布時間:2023/12/15 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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) 的定义的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。