C++模板笔记

模板:实现代码重用机制

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;
  }