c++ 模板(Template)

Template

一.函数模板:
个人理解就是把整体代码结构逻辑相同,只有参数类型不同的函数用同一个函数去编写,在这个函数当中不去指定参数的类型,而是使用暂时替代的办法,当需要使用该函数时再定义函数中参数的类型
例如

模板如下


template<typename  T> void swap(T& t1, T& t2) {
    T tmpT;
    tmpT = t1;
    t1 = t2;
    t2 = tmpT;
}

其中T就是我们所用来暂时替代类型的一个自定义名称,当我们需要使用它时,我们再去指定T是什么,例如:

  1. T为int
int a = 1, b = 2;
swap<int>(a, b);

  1. T为double
double a = 1, b = 2;
swap<double>(a, b);

二. 类模板

类模板的简单用法其实和函数模板也很类似,就是在类中都可以去指定T代替某个参数的类型,提高代码的复用率
例如:

template <class T> class A {
    public:
        A();
        ~A();
        void push(T t);
        T pop();
    private:
        T *value;        
        int size;
        int sign;
};

template <class  T>  A<T>::A(){
    size = 100;
    sign = 0;
    value = new T[size];
}
template <class T>  A<T>::~A() {
   delete [] value ;
}
template <class  T> void A<T>::push(T t){
   if (sign < size)
   {
        sign ++;
   } 
   value[sign - 1] = t;
}
template <class  T> T A<T>::pop(){
    T t = value[sign - 1];
    sign--;
    return t;
}

使用时:

//  int类型
    A<int> a;
    a.push(1);
    a.push(2);
    a.push(3);
//double类型

    A(double) a;
    a.push(1.0);
    a.push(2.0);
    a.push(3.0);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值