心胸决定格局,眼界决定境界...

模板

. 模板的语法

 

 

1.函数模板的一般形式如下:

Template <class或者也可以用typename T>

返回类型 函数名(形参表)
{//函数定义体 }

template < typename T >

T max( T a, T b )

{

return a < b ? b : a;

}

这个 max 函数就是一个模板函数,它可以传入一个 “类型”的参数,以便实现任意类型求最大值的效果。

 

函数模板,定义函数的抽象模板。

类模板,定义类的抽象模板。

 

2、类模板
    (1)类模板的具体格式
        template <class T>
        class A
       {

       }
      在类定义体外定义的成员函数,应该使用函数模板。


 
  1. /* 
  2. 类模板,但是在类外定义成员函数的时候,需要使用函数模板 
  3. */  
  4. #include <iostream>  
  5. using namespace std ;  
  6. template <class T>  
  7. class Base  
  8. {  
  9. public :      
  10.     T a ;  
  11.     Base(T b)  
  12.     {  
  13.         a = b ;      
  14.     }     
  15.     T getA(){ return a ;} //类内定义   
  16.     void setA(T c);  
  17. };  
  18.   
  19. template <class T>   //模板在类外的定义   
  20. void  Base<T>::setA(T c)  
  21. {  
  22.     a = c ;  
  23. }  
  24.   
  25. int main(void)  
  26. {  
  27.     Base <int>b(4);  
  28.     cout<<b.getA()<<endl;   
  29.   
  30.     Base <double> bc(4);  
  31.     bc.setA(4.3);  
  32.     cout<<bc.getA()<<endl;   
  33.     system("pause");   
  34.     return 0 ;      
  35. }  

注意成员函数在类外定义的情况。

 

 

3.模板类:模板产生的类,是类模板的一个实例。

模板类是类模板实例化后的一个产物。

posted @ 2015-09-20 22:54  WELEN  阅读(137)  评论(0)    收藏  举报