C++模板筆記

模板:實現代碼重用機制


         圖1 模板、模板類、模板函數和對象之間的關係

一、函數模板:建立通用函數,函數返回類型和形參不具體指定,
         用模板實參實例化的函數稱爲模板函數。  
template <typename T>   //T爲類型參數
T max(T x,T y){
         return(x>y)?x:y;
};
非函數模板重載>函數模板重載


二、類模板
template <template 類型參數>
class  類名{
     類成員聲明
};
類模板定義對象:

      類模板名 <實際類型名> 對象(實參列表)

舉例:

#include <iuostream>
using namespace std;
template<typename T>
class Three{
   public:
   Three{T a, T b,T c)
   {z=a;y=b;z=c};
   T sum()
   {return x+y+z;};
   private:
   T x,y,z;
};
int main(){
        Three <int> sum3_1(3,5,7);
Three <double> sum3_2(12.34,56.78,78.12);
cout<<"三個整數之和爲:"<<sum3_1.sum()<<endl;
cout<<"三個雙精度之和爲: "<<sum3_2.sum()<<end;
return 0;
}
 
類模板體外定義的成員函數:
       template<typename T> 
  T Three<T>::sum()
  {return x+y+z;
  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章