类模板
时间:2022-05-11 13:00
为了说明类模板,先看一个类模板的例子
#includeusing namespace std; template 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 void Compare ::show( ) { cout< cmp1(1,2); Compare cmp2(3.55,2.7); Compare cmp3('A','z'); cmp1.show(); cout<<" 中最大的数是:"<
执行结果:
上面的程序是实现比较两个数据的大小
代码还可以写成下面的形式
#includeusing namespace std; template class Compare//定义一个比较类(用于比较两个数的大小) { public: //使用初始化表的形式初始化数据成员 Compare(T x, T y); T max(void);//比较两个数据,并且返回最大值 T min(void);//比较两个数据,并且返回最小值 void show( );//显示数据 private://两个比较的数 T a; T b; }; //使用初始化表的形式初始化数据成员 template Compare ::Compare(T x, T y) { a = x; b = y; } template T Compare ::max(void)//比较两个数据,并且返回最大值 { return a > b ? a : b; } template T Compare ::min(void)//比较两个数据,并且返回最小值 { return a < b ? a : b; } //显示比较的数据 template void Compare ::show( ) { cout< cmp1(1,2); Compare cmp2(3.55,2.7); Compare cmp3('A','z'); cmp1.show(); cout<<" 中最大的数是:"<
执行结果和上面的代码一样
类模板的形式:template
如:template
T表示数据类型名
类模板中的成员函数在函数外部定义的形式:
template
类名<类型名> ::成员函数名
如:
template
Complare
::show()
类模板,布布扣,bubuko.com