연산자 오버로딩은 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+ 와 +=을 사용해 사용자정의 클래스의 연산자를 정의하였습니다.
'Programming > C++' 카테고리의 다른 글
범위 지정 연산자(::) (0) | 2020.12.23 |
---|---|
매크로 함수,인라인 함수 (0) | 2020.12.23 |
매개변수의 디폴트 값 (0) | 2020.12.23 |
비주얼 스튜디오 다중 문자열 검색 (0) | 2020.08.04 |
[C/C++] C++에서 싱글톤을 사용하는 방법/Lazy initialzation (0) | 2019.09.16 |