#include <iostream>
using namespace std;
/*类模板:
对于功能相同而数据类型不同的一些函数,不必定义一个可对任何类型变量进行操作的函数模板,
在调用函数时,系统会根据实参的类型,取代函数模板中的类型参数,得到具体的函数*/
template<class numType> //定义类模板
class Compare
{
public:
Compare(numType a,numType b)
{x=a;y=b;}//类内定义函数
numType max()
{return x>y?x:y;}
numType min();
private:
numType x,y;
};
template<class numType> //必须要加这一行
numType Compare<numType>::min()//类外定义成员函数,注意应写成类模板的形式
{
return x<y?x:y;
}
int main()
{
Compare<int> cint(3,7);//静态创建
cout<<cint.max()<<" "<<cint.min()<<endl;
Compare<float> cfloat(3.9,7.9);
cout<<cfloat.max()<<" "<<cfloat.min()<<endl;
Compare<char> *cchar = new Compare<char>('a','B');//能用指针形式动态创建
cout<<cchar->max()<<" "<<cchar->min()<<endl;
return 0;
}
类模板
最新推荐文章于 2024-03-27 22:09:22 发布