C++模板使用介绍

发布时间 : 星期四 文章C++模板使用介绍更新完毕开始阅读

可以被任何字母或者数字代替。template class T T min(T x,T y){ return(x y)?x:y;}void main( ){ int n1=2,n2=10; double d1=1.5,d2=5.6; cout 较小整数: min(n1,n2) endl; cout 较小实数: min(d1,d2) endl; system( PAUSE );}程序运行结果: 程序分析:main()函数中定义了两个整型变量n1 , n2 两个双精度类型变量d1 , d2然后调用min( n1, n2); 即实例化函数模板T min(T x, T y)其中T为int型,求出n1,n2中的最小

值.同理调用min(d1,d2)时,求出d1,d2中的最小值.3. 类模板的写法定义一个类模板:Template class或者也可以用typename T class类名{ //类定义......

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

如:定义一个类模板:// ClassTemplate.h #ifndef ClassTemplate_HH#define

ClassTemplate_HHtemplate 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 );}最后结果显示:4.非类型模版参数

一般来说,非类型模板参数可以是常整数(包括枚举)或者指向外部链接对象的指针。那么就是说,浮点数是不行的,指向内部链接对象的指针是不行的。template typename T, int MAXSIZE class Stack{Private: T elems[MAXSIZE]; };Int main(){ Stack int, 20 int20Stack; Stack int, 40 int40Stack; };

联系合同范文客服:xxxxx#qq.com(#替换为@)