승쨩개발공부

[C++] 연산자 오버로딩 본문

C++

[C++] 연산자 오버로딩

SeungHyune 2021. 12. 6. 16:09

연산자 오버로딩(operator)

함수 오버로딩의 규칙을 연산자에 적용하는 문법

연산자 오버로딩은 연산자의 좌측 객체 기준으로 호출한다.(멤버 함수와 같음)

 

 

operator+ 구현

 

operator= 구현

 

 

객체 생성과 동시에 대입은 복자 생성자의 호출이다

객체 생성 후 대입은 대입 연산자의 호출이다. (디폴트 대입 연산자)

디폴트 대입 연산자 또한 구현한 내용처럼 단순 대입이다.

멤버로 동적할당한 주소를 가지는 변수가 있을 경우에는 깊은 복사 방식으로 구현을 하는 것이 좋다.

 

 

 

operator 객체 + 정수 구현

연산자 오버로딩은 좌측 객체 기준으로 수행한다.

-> 하지만 다음과 같은 경우에는 좌측에 객체가 있는 것이 아닐 경우 호출이 불가능하다.

-> 이를 해결하기 위해서는 교환 법칙을 구현하면 된다.

 

교환 법칙

전역에 정의해야한다.(전역 함수)

인자 중 하나는 객체 또는 객체의 레퍼런스 타입이 와야만 한다.

 

 

단항 연산자 오버로딩

-> ++, --

 

 

전위 증감 연산자 오버로딩

 

 

후위 증감 연산자 오버로딩

여기서 매개변수에 명시한 타입은 인자를 받겠다는 의미가 아니다.

단지, 전위와 후위를 구분하기 위한 용도로 사용한다.

'C++' 카테고리의 다른 글

[C++] 함수 객체  (0) 2021.12.07
[C++] 임시객체  (0) 2021.12.07
[C++] 인라인(inline)  (0) 2021.12.06
[C++] 바인딩  (0) 2021.12.06
[C++] 캐스팅 (static_cast, dynamic_cast, const_cast, reinterpret_cast)  (0) 2021.12.06