개요

연산자 중복(Overloading)

개요

지금까지 변수명 중복, 함수명 중복 등등이 있었다. 이에 확장판으로

이번에는 연산자가 오버로딩되는 것을 살펴본다 .

연산자 중복은 개발자가 연산자의 의미를 객체에 대하여 다시 정의할 수 있는 기능이다.

벡터에 연산자 중복이 사용되는 것을 살펴보면,

MyVector v1, v2, v3;
cout << (v + v2 + v3);// ① 연산자 중복 사용
cout << add(v1, add(v2, v3)); // ② 함수 사용

3차원 벡터를 더하는 식을 의미하는 코드를 구현할 때, 기존 함수로만 작성하는 것보다

연산자를 중복하여 사용한 것이 더욱 직관적이다.

이를 이용하여 개발자는 특정한 클래스마다 적합한 연산자의 의미를 정의하여 다양한 용도로 쓰일 수 있으며, 상황에 따라 다르게 해석할 수 있는 다형성의 기법 중 하나이다.

다만 중복할 수 없는 연산자가 있다는 것을 기억하자

:: 범위 지정 연산자
. 멤버 선택 연산자
.* 멤버 포인터 연산자
?: 조건 연산자

연산자 중복 정의