标签:style class blog code http color
为了说明类模板,先看一个类模板的例子
#include <iostream> using namespace std; template<class T> class Compare//定义一个比较类(用于比较两个数的大小) { public: //使用初始化表的形式初始化数据成员 Compare(T x, T y):a(x),b(y){} T max(void)//比较两个数据,并且返回最大值 { return a > b ? a : b; } T min(void)//比较两个数据,并且返回最小值 { return a < b ? a : b; } //显示比较的数据 void show( ); private://两个比较的数 T a; T b; }; //显示比较的数据 template<class T> void Compare<T>::show( ) { cout<<a<<" "<<b; } void main() { Compare<int> cmp1(1,2); Compare<float> cmp2(3.55,2.7); Compare<char> cmp3('A','z'); cmp1.show(); cout<<" 中最大的数是:"<<cmp1.max()<<endl; cmp1.show(); cout<<" 中最小的数是:"<<cmp1.min()<<endl; cmp2.show(); cout<<" 中最大的数是:"<<cmp2.max()<<endl; cmp2.show(); cout<<" 中最小的数是:"<<cmp2.min()<<endl; cmp3.show(); cout<<" 中最大的字符是:"<<cmp3.max()<<endl; cmp3.show(); cout<<" 中最小的字符是:"<<cmp3.min()<<endl; system("pause"); }
执行结果:
上面的程序是实现比较两个数据的大小
代码还可以写成下面的形式
#include <iostream> using namespace std; template<class T> class Compare//定义一个比较类(用于比较两个数的大小) { public: //使用初始化表的形式初始化数据成员 Compare(T x, T y); T max(void);//比较两个数据,并且返回最大值 T min(void);//比较两个数据,并且返回最小值 void show( );//显示数据 private://两个比较的数 T a; T b; }; //使用初始化表的形式初始化数据成员 template <class T> Compare<T>::Compare(T x, T y) { a = x; b = y; } template <class T> T Compare<T>::max(void)//比较两个数据,并且返回最大值 { return a > b ? a : b; } template <class T> T Compare<T>::min(void)//比较两个数据,并且返回最小值 { return a < b ? a : b; } //显示比较的数据 template<class T> void Compare<T>::show( ) { cout<<a<<" "<<b; } void main() { Compare<int> cmp1(1,2); Compare<float> cmp2(3.55,2.7); Compare<char> cmp3('A','z'); cmp1.show(); cout<<" 中最大的数是:"<<cmp1.max()<<endl; cmp1.show(); cout<<" 中最小的数是:"<<cmp1.min()<<endl; cmp2.show(); cout<<" 中最大的数是:"<<cmp2.max()<<endl; cmp2.show(); cout<<" 中最小的数是:"<<cmp2.min()<<endl; cmp3.show(); cout<<" 中最大的字符是:"<<cmp3.max()<<endl; cmp3.show(); cout<<" 中最小的字符是:"<<cmp3.min()<<endl; system("pause"); }
执行结果和上面的代码一样
类模板的形式:template<class 类型名>
如:template<class T> T表示数据类型名
类模板中的成员函数在函数外部定义的形式:
template<class 类型名>
类名<类型名> ::成员函数名
如:
template<class T>
Complare<T>::show()
标签:style class blog code http color
原文地址:http://blog.csdn.net/u010105970/article/details/29382925