我需要在 C++ 中实现类似于 @selector(Objecitive-C) 的机制。通过谷歌搜索我发现了。它对我没有帮助...
template <class AnyClass>
class ClassCallback
{
// pointer to member function
void (AnyClass::*function)(void);
// pointer to object
AnyClass object;
public:
ClassCallback() { }
~ClassCallback() { }
ClassCallback(AnyClass _object, void(AnyClass::*_function)(void))
: object( _object ), function( _function ) { };
virtual void call(){
(object->*function)();
};
};
是否有任何不同的实现方法类似于 objective-C 之类的
typedef struct objc_selector *MY_SEL;
需要实现 objc_selector 是objective-C中的抽象类。如何实现 objc_selector 任何想法...
最佳答案
只需在 Objective-C 消息传递系统上使用选择器进行一些精确操作。
选择器 (SEL) 是一种不透明类型,但它只是类似于 char *
的东西,仅包含方法的名称(因此许多类可以共享相同的选择器)。
Obj-C 方法是一个包含以下内容的结构:
SEL
字段- 一个
char *
包含有关返回类型和参数的信息。 IMP
字段
类似于:
struct objc_method
{
SEL method_name;
char * method_types;
IMP method_imp;
};
typedef objc_method Method;
IMP
只是一个 C 函数指针。
关于c++ - @selector 在C++中的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6734453/