이 포스트의 목적
- 일반화 함수자(함수 객체)가 멤버 함수 포인터도 처리할 수 있게 만든다.
이 포스트의 준비물
- 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에 포함시켜 보자.
- 받아들일 멤버 함수와 멤버 함수를 갖은 객체를 받아 들이는 생성자를 추가해야 한다. 왜냐하면 멤버 함수는 객체가 있어야지만 호출 가능하기 때문이다. 그러므로 다음과 같은 코드를 만들수 있다.
- m_function_object_base 도 function_object_interface 를 상속하여 구현하고, 객체도 받을수 있도록 만든다. 그러면 다음과 같은 코드를 만들 수 있다.
- 이를 다 합친 코드는 다음과 같다.
여담
- 음.. 코드 만드는 것보다 설명하는게 더 어려울 때가 많다.
'책 정리 > Modern C++ Design' 카테고리의 다른 글
6장, 싱글턴(Singleton)의 구현 - 4. 피닉스 싱글턴(phoenix singleton)의 구현과 그 한계점 (2) | 2010.12.04 |
---|---|
6장, 싱글턴(Singleton)의 구현 - 3. 마이어스 싱글턴(Singleton)의 한계와 개선점 (0) | 2010.12.03 |
6장, 싱글턴(Singleton)의 구현 - 2. 싱글턴(Singleton)의 기초적인 구현 (0) | 2010.11.30 |
6장, 싱글턴(Singleton)의 구현 - 1. 싱글턴(Singleton)이란 무엇인가? (0) | 2010.11.30 |
5장, 일반화 함수자(함수 객체) - 7. 총평 (0) | 2010.11.28 |
5장, 일반화 함수자(함수 객체) - 5, 일반화 함수자 구현하기 (0) | 2010.11.27 |
5장, 일반화 함수자(함수 객체) - 4, 일반화 함수자 구현하기 (0) | 2010.10.13 |
5장, 일반화 함수자(함수 객체) - 3, C++의 호출 가능한 객체들 (0) | 2010.10.09 |
5장, 일반화 함수자(함수 객체)와 Command 패턴 : 2 - Command 패턴은 무엇인가? (0) | 2010.09.29 |
5장, 일반화 함수자(함수 객체)와 Command 패턴 : 1 - 일반화 함수자는 무엇인가? (0) | 2010.09.29 |
최근댓글