|
함수는 typedef로 선언해야 되므로.. 그리고 type도 여러가지이므로, 이것이 템플릿이나 policy 등의 방법으로 구현이 될 수 있는지는... ^^ 잘 모르겠고..
객체, 클래스 등은 typeid나 typeinfo 등 rtti 의 방법으로 알아낼 수 있을 것입니다.
보다 편리하게 제어하자면...
실질적으로 모든 클래스(아주 별볼일 없는 찌질이 클래스도)를 자신만의 베이스 클래스로부터 상속받도록 하고.
베이스 클래스에서 자신이 원하는 기능, 예를 들면 멤버 포인터를 리스트에 추가하고(이 경우 멤버 포인터도 베이스 클래스로부터 상속받습니다.), 그렇게 추가된
멤버 리스트를 이용하여 type이 일치하는지의 처리를 수행할 수도 있겠죠.
음.. 그러니까.
모든 구현하는 클래스를 어떠한 베이스 클래스로부터 상속을 받는다 이런 얘기가 되겠죠.
vcl이 TObject 로부터 상속받는것처럼요. 그러면 언젠가 질문하신 것에 답을 구했다면, 베이스 클래스에 그 기능을 추가하시기만 하면 되겠죠. ^^
EmptySpear 님이 쓰신 글 :
: 안녕하세요..
:
: 아무 클래스 멤버 함수를 가르키는 함수포인터 선언방법이 있을까요?
:
: typedef void (Test::*FuntPtr)(); -> 이건 Test클래스의 멤버함수를 가르키는 함수포인터지요?
:
: 그런데 Test라는 특정클래스와 상관없이 어떤 클래스라도 가르키는 함수포인터를 어떻게 선언할까요?
:
: 단 BCB전용인(??)__closure키워드 사용치 말구 표준 C++로 ...템플리트를 이용하면 될것 같은데 ...
:
: 미천한 지식이라 잘 모르겠네요..꼭 알려주세요
:
: template <class T> void (T::*FuncPtr)(); 이런식으로 T형 클래스를 가르키는 함수포인터 선언을 하고파요...
|