안녕하세요 이번시간에는 STL에 필요한 주요 연산자 오버로딩에 대해 배워보겠습니다.


첫번째로 함수 호출 연산자 오버로딩(()연산자)에 대해 알아 보겠습니다.

함수 호출 연산자 오버로딩은 객체를 함수처럼 동작하게 하는 연산자입니다.

C++에서 Print(10)이라는 함수 호출 문장은 다음 세 가지로 해석할 수 있습니다.

1. 함수호출 : Print가 함수 이름

2. 함수포인터 : Print가 함수 포인터

3. 함수 객체 : Print가 함수 객체

여기서 함수 호출 연산자를 정의한 객체를 함수 객체라 합니다.

예제를 통해 쉽게 이해해 보도록 하겠습니다.


두번쨰로 배열 인덱스 연산자 오버로딩([]연산자)에 대해 알아 보도록하겠습니다.

배열 인덱스 연산자 오버로딩을 사용하면 배열에 사용하는 []연산자를 객체에도 사용할 수 있습니다.

[]연산자 오버로딩은 일반적으로 많은 객체를 저장하고 관리하는 객체에 사용됩니다.

예제를 통해 쉽게 이해해 보도록 하겠습니다.

@

pt[0]는 pt.operator[](0)을 호출해 pt.x값을 반환 받습니다.

[]연산자 오버로딩은 일반적으로 컨테이너 객체에 사용됩니다. 컨테이너 객체가 곤리하는 내부 원소에 접근할 때 사용됩니다.



세번째로 ->연산자 오버로딩에 대해 알아보겠습니다.

예제를 보시겠습니다.

p1->Print()는 p1.operator->()함수를 호출해 ㅔ1 내부에 보관된 실제 포인터를 반환 받고 이 포인터를 이용해 실제 point의 멤버 함수를 호출합니다.


이상으로 연산자 오버로딩에 대한 포스팅을 마치겠습니다.

궁금하신점이나 오류가 있으면 댓글남겨주세요 ~

다음시간에 함수 포인터에 대해 다뤄보겠습니다.




<작성자 - CODER_CJH>

<참고자료 - 뇌를 자극하는 C++STL>

'Programming Language > C++' 카테고리의 다른 글

6. 템플릿  (0) 2016.06.01
5.함수 객체  (0) 2016.06.01
4. 함수 포인터  (1) 2016.06.01
2. 연산자오버로딩(1)  (0) 2016.06.01
1. STL에 들어가기 앞서...  (1) 2016.06.01

+ Recent posts