// 26_26-4.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include <iostream>
#include <windows.h>

using namespace std;

class XYpos;
XYpos operator+(int xdt, XYpos ob2);

class XYpos {
private:
	int x, y;
public:
	XYpos(int a = 0, int b = 0) { x = a; y = b; }
	void disp() { cout  << "(" << x << "," << y << ")\n"; }
	XYpos operator+(XYpos ob2);
	friend XYpos operator+(int xdt, XYpos ob2);
};

// +演算子のメンバ関数による多重定義
// d1+d2とd1+数値に対応できる
XYpos XYpos::operator +(XYpos ob2)
{
	return XYpos(x + ob2.x, y + ob2.y);
}

XYpos operator+(int xdt, XYpos ob2)
{
	return XYpos(xdt + ob2.x, ob2.y);
}

int _tmain(int argc, _TCHAR* argv[])
{
	XYpos d1(100, 200), d2(30, 40), dd;

	dd = d1 + d2;
	dd.disp();

	dd = d1 + 1000;
	dd.disp();

	dd = 1000 + d2;
	dd.disp();

	dd = 1000 + 2000;
	dd.disp();

	MessageBox(NULL, _T("Check Console Window"), L"MessageBox", MB_OK);

	return 0;
}

