이 포스트의 목적

  • 일반화 함수자(함수 객체)가 멤버 함수 포인터도 처리할 수 있게 만든다.

이 포스트의 준비물

  • VMware player 3.1.2
  • Debian 5 64bit
  • g++ 4.3.2
  • vim 7.1.314
  • project.vim
  • make

참조 서적

  • 안드레 알렉산드레스쿠 저. Modern C++ Design. 이기형 역.
    Addiston-Wesley. 인포북. 초판 2003.07.30. page(199 ~ 205)
내용

우선 멤버 함수의 포인터를 받기 위한 방법부터 알아야 한다. 다음 예제에서 하이라이트 된 부분을 잘 보면 쉽게 이해할 수 있을 것이다.

어떻게 멤버 함수를 받아 들이는지 이해가 되었다면, 이제 function_object에 포함시켜 보자.

  1. 받아들일 멤버 함수와 멤버 함수를 갖은 객체를 받아 들이는 생성자를 추가해야 한다. 왜냐하면 멤버 함수는 객체가 있어야지만 호출 가능하기 때문이다. 그러므로 다음과 같은 코드를 만들수 있다.
  2. m_function_object_base 도 function_object_interface 를 상속하여 구현하고, 객체도 받을수 있도록 만든다. 그러면 다음과 같은 코드를 만들 수 있다.

  3. 이를 다 합친 코드는 다음과 같다.


여담

  • 음.. 코드 만드는 것보다 설명하는게 더 어려울 때가 많다.


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기