[C++ 정리] 연산자 오버로딩

사용자가 만든 클래스 타입에 C++의 연산자를 오버로딩 하여 사용할 수 있는데 이는 더 직관적이며 일반화된 코드를 만들 수 있게 해준다.

#include "stdafx.h"
#include <iostream>

using namespace std;

class Point
{
private:
	int x;
	int y;
public:
	Point(int _x, int _y) :x(_x), y(_y){}	
	// 1. 멤버함수를 이용한 연산자 오버로딩
	const int operator+(const Point& point2)
	{
		return 10;
	}
};

// 2. 전역함수를 이용한 연산자 오버로딩
const int operator-(const Point& point1, const Point& point2)
{
	return 20;
}

int _tmain(int argc, _TCHAR* argv[])
{
	Point point1(10, 10), point2(20, 20);
	int testPlus = point1 + point2;
	int testMinus = point1 - point2;

	cout << "PLUS : " << testPlus << "\n";
	cout << "MINUS : " << testMinus << "\n";
		
	return 0;
}
* 멤버함수를 이용한 연산자 오버로딩, 전역함수를 이용한 연산자 오버로딩 두가지 방법이 있다.

댓글 남기기