연산자 오버로딩
연산자를 분류할 때는 1항(단항) 연산자, 2항 연산자, 3항 연산자로 구분합니다.
C++ 에서 연산자는 일종의 메소드 처럼 취급될 수 있습니다. 각 연산자의 규격에 맞게 함수를 오버로딩 합니다.
반환형 | operator 연산자 | (인수 ...) |
---|
연산자들의 기본 함수는 연산자의 특성에 따라 제각각이지만, 보통은 상기 형태를 가집니다.
새로운 연산자 함수를 멤버 함수로 작성하였다면 함수는 해당 클래스에 의해 연산자가 호출될 때 동작합니다.
- 전역 범위에 작성하였다면 이 함수는 전역의 연산자에 영향을 끼칩니다.
우선순위는 멤버함수가 전역에 비해 높으므로, 동일한 연산자가 전역과 멤버로 정의되어 있다면 해당 클래스에 대해서 만큼은 멤버함수가 우선됩니다.
- 연산자를 오버로딩 하더라도, 연산자의 우선순위는 그대로 유지되기 때문에 이를 항상 고려해야 합니다.
연산자 오버로딩은 생성자와 소멸자처럼 기존 기능을 대체하며,
기존 기능에 구애받지 않습니다.
- + 연산자를 오버로딩 했다고 해서 꼭 덧셈으로 사용할 필요는 없으며 다른 의미로 활용할 수 있습니다.
- 연산자는 기본 의미를 가지고 있고, 설명이 없다면 기본 의미를 떠올리므로, 오버로딩 시 문서나 주석을 제공하는게 좋습니다.
이어지는 문서에서 연산자 오버로딩에 대해 상세히 설명합니다.