我在初始化指针结构时遇到问题。 我尝试使用非静态方法初始化指针,但出现编译错误。
让我说明问题。
结构指针:
typedef struct
{
bool (*init)(void);
void (*deInit)(void);
}sCallback;
类:
class Manager
{
public :
Manager();
bool init(void);
void deInit(void);
};
Manager manager; // instanciation
结构指针初始化:
sCallback const callback =
{
manager.init,
manager.deInit
};
执行此操作时,出现错误:无法将 'Manager::init' 从类型 'bool (Manager::)()' 转换为类型 'bool(*)()'。 我不明白为什么。
但是如果我使用静态方法(对于 init 方法),我就没有这个问题。
我怎样才能用非静态方法做到这一点?