프로그래밍 언어 공부/C++

연산자 오버로딩

설탕중독 2022. 6. 18. 23:05

연산자 오버로딩

 

연산자 오버로딩은 이름에서도 알 수 있듯이 연산자를 재정의해서 원하는 동작을 하도록

만드는 것을 말한다.

 

일반적인 산술 연산자로는 클래스 + 클래스를 진행할 수 없지만 

클래스 내부 멤버 함수에서 연산자를 오버로딩(재정의)해서 클래스끼리의 연산을 가능하게

만들 수 있다는 소리이다. 물론 클래스끼리가 아닌 클래스 + 정수도 가능하다.

하지만 주의할 점이 있는데 a op(연산자 재정의) b라고 했을 때 a를 기준 피연산자라고 하며 

a가 클래스여야 가능하다. 정수 + 클래스로 순서를 바꾸면 에러가 발생한다.

위에서 서술한 방식을 멤버 연산자 함수 방식이라고 한다.

 

멤버 연산자 함수 방식 말고도 다른 방식이 있는데 바로 전역 연산자 함수 방식이다.

a op b라고 했을 때 a, b 모두를 연산자 함수의 피연산자로 만든다.

전역 연산자 함수이기 때문에 클래스 내부가 아닌 외부에서 선언할 수 있다.

 

둘 다 상황에 따라 사용하기 때문에 둘 다 알아두는 것이 중요하다.