c++ 类模板

  • 类模板的定义
template<class T1,class T2,…>
class 类名{
    	……								// 类成员的声明与定义
}

其中T1、T2是类型参数 类模板中可以有多个模板参数,包括类型参数和非类型参数
非类型参数是指某种具体的数据类型,在调用模板时只能为其提供用相应类型的常数值。非类型参数是受限制的,通常可以是整型、枚举型、对象或函数的引用,以及对象、函数或类成员的指针,但不允许用浮点型(或双精度型)、类对象或void作为非类型参数。

在下面的模板参数表中,T1、T2是类型参数,T3是非类型参数。

template<class T1,class T2,int T3>
  • 类模板的特化
template <> 返回类型 类模板名<特化的数据类型>::特化成员函数名(参数表){
   …… 								//函数定义体
}

如下:

template<class T>
class Array{
    private:
        T a[Size];
    public:
        Array(){
            for(int i=0;i<Size;i++){
                a[i]=0;
            }
        }
        T &operator[](int i);
        void Sort();
};

template<class T> T& Array<T>::operator[](int i){
    if(i<0||i>Size-1){
        cout<<"\n数组下标越界!"<<endl;
        exit(1);
    }
    return a[i];
}
posted @ 2020-08-04 15:36  tccxy  阅读(132)  评论(0编辑  收藏  举报