프로그래밍 언어 공부/C++
연산자 오버로딩
설탕중독
2022. 6. 18. 23:05
연산자 오버로딩
연산자 오버로딩은 이름에서도 알 수 있듯이 연산자를 재정의해서 원하는 동작을 하도록
만드는 것을 말한다.
일반적인 산술 연산자로는 클래스 + 클래스를 진행할 수 없지만
클래스 내부 멤버 함수에서 연산자를 오버로딩(재정의)해서 클래스끼리의 연산을 가능하게
만들 수 있다는 소리이다. 물론 클래스끼리가 아닌 클래스 + 정수도 가능하다.
하지만 주의할 점이 있는데 a op(연산자 재정의) b라고 했을 때 a를 기준 피연산자라고 하며
a가 클래스여야 가능하다. 정수 + 클래스로 순서를 바꾸면 에러가 발생한다.
위에서 서술한 방식을 멤버 연산자 함수 방식이라고 한다.
멤버 연산자 함수 방식 말고도 다른 방식이 있는데 바로 전역 연산자 함수 방식이다.
a op b라고 했을 때 a, b 모두를 연산자 함수의 피연산자로 만든다.
전역 연산자 함수이기 때문에 클래스 내부가 아닌 외부에서 선언할 수 있다.
둘 다 상황에 따라 사용하기 때문에 둘 다 알아두는 것이 중요하다.