// 27_27-7.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include <iostream>
#include <windows.h>

using namespace std;

// 基底クラス
class ClsA {
protected:
	int a;
public:
	ClsA(int n = 0) { a = n; }
	int getA() { return a; }
	void disp() { cout << "ClsA a=" << a << '\n'; }
};

// 派生クラス
class ClsB : public ClsA {
private:
	int b;
public:
	ClsB(int n1 = 0, int n2 = 0) : ClsA(n1) { b = n2; }
	int getB() { return b; }
	void disp() { cout << "ClsB a=" << a << " b=" << b << '\n'; }
};

void func_r(ClsA& ra)	// 基底クラスの参照仮引数を使う一般関数
{
	ra.disp();
	cout << "getA " << ra.getA() << '\n';
}

int _tmain(int argc, _TCHAR* argv[])
{
	ClsA aa(10);
	ClsB bb(20, 30);

	func_r(aa);
	func_r(bb);


	MessageBox(NULL, _T("Check Console Window"), L"MessageBox", MB_OK);

	return 0;
}

