C++ Chapter 9.8 : 괄호 연산자 오버로딩과 함수 객체
카테고리: Cpp
태그: Cpp Programming
인프런에 있는 홍정모 교수님의 홍정모의 따라 하며 배우는 C++ 강의를 듣고 정리한 필기입니다. 😀
🌜 [홍정모의 따라 하며 배우는 C++]강의 들으러 가기!
chapter 9. 연산자 오버로딩 : 괄호 연산자 오버로딩과 함수 객체
괄호 연산자 :
()
추가적인 설명은 이전 포스트인 9.1 연산자 오버로딩 시작하기 참고하기
()
괄호 연산자는 보통 함수 호출할 때 사용된다. 객체(인수)
로 함수처럼 동작하고 싶을 때 사용하는 연산자 오버로딩이다.
🔔 멤버 함수로 구현하기
📢 주의사항 :
()
연산자 오버로딩은 멤버 함수로만 구현이 가능하다.이유는 모르겠지만😱 전역 함수로 구현하는 것은 막혀있다.
#include <iostream>
using namespace std;
class Accumulator
{
private:
int m_counter = 0;
public:
int operator() (int i)
{
return (m_counter += i);
}
};
int main()
{
Accumulator acc;
cout << acc(10) << endl; // 10 출력
cout << acc(20) << endl; // 30 출력
return 0;
}
- Accumulator 타입의 객체
acc
- acc(10)
- int operator
()
(int i) 이 호출된다. - 10 을 리턴
- int operator
- acc(20)
- int operator
()
(int i) 이 호출된다. - 30 을 리턴
- int operator
- acc(10)
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글남기기