C++/STL
C++/STL 강좌 2편. 함수 객체(Function Object)
C++/STL 강좌 2편. 함수 객체(Function Object)
2013.08.041. 함수 객체(Function Object)이번에는 함수 객체(Function Object)에 대해 알아보도록 하겠습니다. 함수 포인터에 이어 함수 객체는 어떠한 기능일까요? 쉽게 말하자면, 함수 객체는 객체가 함수처럼 동작한다 하여 함수 객체라고 할 수 있는데 우리가 전에 배웠던 연산자 오버로딩에서 ()라는 연산자를 오버로딩하여 객체를 함수처럼 쓸 수 있습니다. 우선은 함수 객체를 알아보기 전에, 간단히 () 연산자에 대해 짚고 넘어가도록 하겠습니다. 우리가 살펴볼 () 연산자는 함수 호출 연산자라고 불리며, 위에서 말했듯이 이 연산자를 오버로딩하게 되면 그 객체는 함수 객체라고 할 수 있습니다. 함수 호출 연산자를 한번 정의하여, 함수 호출 연산자가 도대체 어떤 녀석인지를 봐보도록 할까요? 아래의 ..
C++/STL 강좌 1편. 함수 포인터(Function Pointer)
C++/STL 강좌 1편. 함수 포인터(Function Pointer)
2013.06.071. 함수 포인터(Function Pointer)오늘은 번외편의 시작으로 함수 포인터(Function Pointer)에 대해 알아보려고 합니다. 포인터(Pointer) 앞에 함수(Function)가 붙으니 대충 어떠한 녀석인지 감이 잡히시나요? 당연히 함수를 가리키는 포인터가 있다는 것은 함수에도 주소가 존재함을 알 수 있습니다. 함수명은 함수의 시작 주소를 의미하고, 이 함수 포인터를 선언할 때에는 함수 시그너쳐(signature)와 같도록 선언해야 합니다. 다른 말로는 원형과 같도록 선언해야 한다고 말할 수 있겠네요. 만약에 아래의 원형을 갖는 함수를 가리키는 포인터를 선언하려면 어떻게 해야 할까요? int sum(int a, int b) 반환형은 int이며, 매개변수는 int, int임을 알 수 있..