#include <iostream>
using namespace std;

template<class numtype>//声明一个模板,虚拟类型名为numtype
class Compare{//类模板名为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> cmp1(3, 7);
	cout<<cmp1.max()<<endl;
	cout<<cmp1.min()<<endl;

	Compare<float> cmp2(3.8, 7.9);
	cout<<cmp2.max()<<endl;
	cout<<cmp2.min()<<endl;

	return 0;
}

//类模板的类型参数可以有一个或者多个,每个类型前面必须加class
template<class T1, class T2>
class someclass{
	//.....
};
//在定义对象时分别代入实际的类型名
someclass<int, double> obj1;
someclass<float, string> obj2;


Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐