Programming/C++
연산자 오버로딩
DDang goon
2021. 1. 4. 16:28
연산자 오버로딩은 C++에서 제공하는 기본 타입이 아닌 클래스 타입, 즉 사용자 정의 타입에도 연산자를 사용할 수 있게 하는 문법입니다.
장점
컴파일러 내부에 정의되지 않은 타입의 연산이 가능하여 코드의 직관성과 가독성을 좋게 할 수 있습니다.
#include <iostream>
using namespace std;
class Point {
int x;
int y;
public:
Point(int _x = 0, int _y = 0) : x(_x), y(_y) {}
void Print() const { cout << x << "," << y << endl; }
Point operator+(Point arg)
{
Point value;
value.x = x + arg.x;
value.y = y + arg.y;
return value;
}
void operator+=(Point arg)
{
x = x + arg.x;
y = y + arg.y;
}
};
void main()
{
Point p1(1, 2), p2(3, 4);
Point p3 = p1 + p2;
p1 += p2;
p1.Print();
p3.Print();
}
operator+ 와 +=을 사용해 사용자정의 클래스의 연산자를 정의하였습니다.