안녕하세요 이번시간에는 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 |