类模板

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

 

转载于:https://www.cnblogs.com/upup-2015/p/5042869.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值