模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。
    模板是一种对类型进行参数化的工具;
    通常有两种形式:函数模板类模板

    • 函数模板针对仅参数类型不同的函数
    • 类模板针对仅数据成员成员函数类型不同的类。

    使用模板的目的就是能够让程序员编写与类型无关的代码。
    注意:模板的声明或定义只能在全局,命名空间或类范围内进行。即不能在局部范围,函数内进行,比如不能在main函数中声明或定义一个模板。

    1. #ifndef TEMPLATE_DEMO_HXX
    2. #define TEMPLATE_DEMO_HXX
    3. template<class T> class A{
    4. public:
    5. T g(T a,T b);
    6. A();
    7. };
    8. #endif
    1. #include<iostream.h>
    2. #include "TemplateDemo.h"
    3. template<class T> A<T>::A(){}
    4. template<class T> T A<T>::g(T a,T b){
    5. return a+b;
    6. }
    7. void main(){
    8. A<int> a;
    9. cout<<a.g(2,3.2)<<endl;
    10. }