// 29_29-11.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include <iostream>
#include <windows.h>

using namespace std;

class Clsc {
public:
	char a, b;
};

class Clsi {
public:
	int a, b;
};

class Clsd {
public:
	double a, b;
};

// 第1引数はデータ型、第2引数はクラス型を指定するテンプレート
template<typename varT, typename clsT> class Mycls {
private:
	clsT 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, Clsc> d1;
	Mycls<int, Clsi> d2;
	Mycls<double, Clsd> d3;

	d1.set('A', 'B');
	d1.disp();

	d2.set(100, 200);
	d2.disp();

	d3.set(33.33, 44.44);
	d2.disp();

	MessageBox(NULL, _T("Check Console Window"), L"MessageBox", MB_OK);

	return 0;
}

