栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++ 模板(Template)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++ 模板(Template)

Template

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

模板如下

template 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(a, b);

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

二. 类模板

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

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

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

使用时:

//  int类型
    A 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);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号