zoukankan      html  css  js  c++  java
  • 类模板

    1.和函数模板产生的原因相同,通常很多的类都是类体相同,只有参数不同的时候将会用到这个所谓的类模板;类模板在声明处和函数模板没有什么不同,但是实现的地方确实大不相同模板代码不能分离编译,也就说所有的模板代码只能够在.h文件中实现,这样才能够编译通过;若是将函数的定义写在类的内部,则无需注意一些什么,但是若将函数定义写在类的外部,就会有所不同

    2. 类模板的声明定义以及调用示例:

     1 template<typename T,int KSize,int KVal>//定义类模板必须写这一行代码
     2 class MyArray{
     3 public:
     4     MyArray();
     5     ~MyArray(){
     6         delete []m_pArr;
     7         m_pArr = NULL;
     8     }
     9     void display();
    10 private:
    11     T *m_pArr;
    12 };
    13 
    14 template<typename T,int KSize,int KVal>//定义在外部的函数必须要有这一行代码
    15 MyArray<T,KSize,KVal>::MyArray(){//注意这里二元域解析运算符前面的类名发生的变化
    16     m_pArr=new T[KSize];
    17     for(int i = 0;i<KSize;i++){
    18         m_pArr[i]=KVal;
    19     }
    20 }
    21 template<typename T,int KSize,int KVal>
    22 void MyArray<T,KSize,KVal>::display(){
    23     for(int i = 0;i<KSize;i++){
    24         cout<<m_pArr[i]<<endl;
    25     }
    26 }
    27 
    28 //调用代码
    29  MyArray<int,6,5> myArray;//此时才生成一个模板类
    30  myArray.display();
    View Code
  • 相关阅读:
    pylab
    通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证
    PRIMUS
    Ubuntu 下安装AMBER10/AmberTools 1.2
    SUPCOMB
    biopython
    python IDE
    SASREF
    PEAK
    ANDROID移植: WIFI设计原理(源码分析
  • 原文地址:https://www.cnblogs.com/upup-2015/p/5042869.html
Copyright © 2011-2022 走看看