首页 > 其他 > 详细

类模板的写法

时间:2018-06-04 23:52:01      阅读:235      评论:0      收藏:0      [点我收藏+]

类模板的写法

定义一个类模板:

Template < class或者也可以用typename T >
class类名{
//类定义......
};

说明:其中,template是声明各模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个。

例如:定义一个类模板:

// ClassTemplate.h
#ifndef ClassTemplate_HH
#define ClassTemplate_HH

template<typename T1,typename T2>

class myClass{

private:
     T1 I;
     T2 J;

public:
     myClass(T1 a, T2 b);//Constructor
     void show();
};


//这是构造函数
//注意这些格式

template <typename T1,typename T2>

myClass<T1,T2>::myClass(T1 a,T2 b):I(a),J(b){}

 

//这是void show();

template <typename T1,typename T2>

void myClass<T1,T2>::show()
{
     cout<<"I="<<I<<", J="<<J<<endl;
}
#endif


// Test.cpp

#include <iostream>
#include "ClassTemplate.h"
using std::cout;
using std::endl;

void main()
{
     myClass<int,int> class1(3,5);
     class1.show();

     myClass<int,char> class2(3,a);
     class2.show();

     myClass<double,int> class3(2.9,10);
     class3.show();

     system("PAUSE");
}

最后结果显示:

 技术分享图片

2.非类型模版参数

一般来说,非类型模板参数可以是常整数(包括枚举)或者指向外部链接对象的指针。

那么就是说,浮点数是不行的,指向内部链接对象的指针是不行的。

template<typename T, int MAXSIZE>
class Stack{
Private:
       T elems[MAXSIZE];
…
};

Int main()
{

       Stack<int, 20> int20Stack;
       Stack<int, 40> int40Stack;
…

};

 

 

 

 

类模板的写法

原文:https://www.cnblogs.com/pjl1119/p/9136516.html

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