연산자 오버로딩
조무위키
주의. 이 문서는 공머생들이 좋아하는 주제 혹은 공머생 그 자체에 대해 다룹니다. 본 문서가 다루는 내용에 지나치게 탐닉할 경우 필연적으로 여성들과 멀어지게 됩니다. 이는 조무위키가 책임지지 않습니다. |
개요[편집]
프로그래밍 언어에서, 기본 연산자를 확장해서 사용할 수 있는 기능을 말한다.
C++, C#과 같은 객체지향성 언어들에게 제공된다. 병신언어 자바는 이거 없다.
연산자 오버로딩을 사용하면 +나 -, [] 같은 대부분의 연산자를 사용자 정의 타입
결과적으로 생산성, 가독성을 대폭 증가시킬 수 있다.
사용법 (C++)[편집]
키워드 operator를 사용한다.
기본적인 구조는 메소드와 동일하고, 메소드나 전역함수로 선언이 가능하다.
<source lang="cpp"> class Type { ㅤint value;
public: ㅤvoid SetValue(int _value) ㅤ{ ㅤㅤvalue=_value; ㅤ} ㅤint GetValue() const ㅤ{ ㅤㅤreturn value; ㅤ}
ㅤType operator+(Type right) const ㅤ{ ㅤㅤType temp; ㅤㅤtemp.SetValue(value+right.GetValue()); ㅤㅤreturn temp; ㅤ} }; </source>
이와 같은 타입을 정의하고
<source lang="cpp"> Type obj().SetValue(2); Type obj2().SetValue(5); cout<< (obj+obj2).GetValue(); </source>
이렇게 사용을 하면 정상적으로 7이란 값이 출력이 된다
(obj+obj2)
이 코드는 자동적으로 이렇게 변환된다.
(obj.operator+(obj2))
그리고 보통 함수와 같은 원리로 수행된다.