// 29_29-12.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include <iostream>
#include <windows.h>

using namespace std;

template<typename T> class ClsCID {
public:
	T a, b;
};

// 第1引数はクラス、第2引数はデータ型を指定するテンプレート
template<typename varT, typename tmpT> class Mycls{
private:
	tmpT x;
public:
	void set(varT n1, varT n2) { x.a = n1; x.b = n2; }
	void disp() { cout << "a" << x.a << " b=" << x.b << '\n'; }
};

int _tmain(int argc, _TCHAR* argv[])
{
	Mycls<char, ClsCID<char> > d1;	// char版ClsCIDを指定
	Mycls<int, ClsCID<int> > d2;	// int版ClsCIDを指定
	Mycls<double, ClsCID<double> > d3;	// double版ClsCIDを指定

	d1.set('A', 66);
	d1.disp();
	d2.set(100, 66);
	d2.disp();
	d3.set(33.33, 44.44);
	d3.disp();
	
	MessageBox(NULL, _T("Check Console Window"), L"MessageBox", MB_OK);

	return 0;
}

