首页 > 其他 > 详细

类模板

时间:2015-12-13 17:06:28      阅读:165      评论:0      收藏:0      [点我收藏+]

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

 

类模板

原文:http://www.cnblogs.com/upup-2015/p/5042869.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!