templateクラステンプレートの使用例

1383 ワード

#include<iostream>
using namespace std;

template<class T>//      ,       T
class Compare
{
public:
	Compare(T a,T b);
	T min();   //      T 
	T max();
private:
	T num1;   //      T
	T num2;   
};

template<class T>
Compare<T>::Compare(T a,T b)
{
	num1=a;
	num2=b;
}

template<class T>
T Compare<T>::min()
{
	return num1>num2?num2:num1;
}

template<class T>
T Compare<T>::max()
{
	return num1>num2?num1:num2;
}

int main()
{
	Compare<int> com1(10,20);
	cout<<"the min of com1 is:"<<com1.min()<<endl;
	cout<<"the max of com2 is:"<<com1.max()<<endl;

	Compare<double> com2(12.12,13.14);
	cout<<"the min of com2 is:"<<com2.min()<<endl;
	cout<<"the max of com2 is:"<<com2.max()<<endl;

	Compare<char> com3('a','A');
	cout<<"the min of com3 is:"<<com3.min()<<endl;
	cout<<"the max of com3 is:"<<com3.max()<<endl;

	system("pause");
	return 0;
}