이번에는 연산자 중복 정의에 관해 알아보기로 해요.
연산자 중복 정의란 하나 이상의 피연산자가 사용자 정의 형식일 때 연산 기능을 정의하는 것입니다. C++에서는 개발자는 자신이 정의한 형식을 피연산자로 사용할 때 사용하는 곳에서 연산 기호를 사용할 수 있게 연산 기능을 정의할 수 있습니다.
자신이 정의한 형식에 특정 연산의 기능을 정의하면 사용하는 개발자는 직관적으로 사용할 수 있습니다. 예를 들어 IsEqual 메서드를 제공하고 있을 때 == 연산자 중복 정의를 제공하여 사용하는 개발자는 == 연산을 사용할 수 있게 만드는 것입니다.
다음은 C++언어에서 연산자 중복 정의에 관한 사항들입니다.
- 피연산자 중에 최소 하나는 사용자 정의 형식이어야 한다.
- 기본적으로 함수 중복 정의의 규칙을 따른다.
- 피연산자의 개수를 바꿀 수 없다.
- 모든 연산을 중복 정의할 수 있는 것은 아니다.
- 연산자 우선 순위를 변경할 수 없다.
- 연산자 중복 정의는 전역 스코프와 클래스 스코프에서 할 수 있다.
그런데 컴파일러는 연산 내에서 수행하는 논리가 맞는지 판단하지 않습니다. 연산자 중복 정의를 제공하는 개발자의 생각과 이를 사용하는 개발자의 생각이 다르면 오히려 제공하지 않는 것보다 유지 보수 비용이 더 들어갈 수도 있습니다.
여러분은 다른 개발자도 자신이 정의한 것처럼 동작할 것이라고 명확하게 예견할 수 있을 때에 한정하여 연산자 중복 정의를 하세요. 그리고 포인터 형식은 사용자 정의 형식이 아니라는 점도 주의하시기 바랍니다.
이제 코드를 중심으로 연산자 중복 정의 문법을 살펴봅시다.
'언어 자료구조 알고리즘 > 디딤돌 C++' 카테고리의 다른 글
[C++] 50. 인덱스 연산자 중복 정의 (0) | 2016.04.25 |
---|---|
[C++] 49. 대입 연산자 중복 정의 (0) | 2016.04.25 |
[C++] 48. 증감 연산자 중복 정의 (0) | 2016.04.25 |
[C++] 47. 클래스에 연산자 중복 정의 (0) | 2016.04.25 |
[C++] 46. 전역 연산자 중복 정의 (0) | 2016.04.25 |
[C++] 44. 상속과 다형성 최종 실습 - 코드 (0) | 2016.04.25 |
[C++] 43. 상속과 다형성 최종 실습 - 파생 클래스 (0) | 2016.04.25 |
[C++] 42. 상속과 다형성 최종 실습 - 학생 (0) | 2016.04.25 |
[C++] 41. 상속과 다형성 최종 실습 시나리오 (0) | 2016.04.25 |
[C++] 40. 상속과 다형성 실습2 (도형) (0) | 2016.04.25 |