C ++指针和类成员的关系如何工作?

时间:2016-03-15 20:46:54

标签: c++ pointers

在下面的示例中,我做了一个非常简单的课程,有一些我不理解的事情。

[]

如果我理解正确,一旦类对象被定义并在操作结束时被销毁,所以类的所有成员都是本地的(在堆栈中)。 (功能退出)。

在上面的示例中,我尝试将HHOOK分配给私有成员hHook,从而收到错误:"非标准语法;使用'&'创建指向成员的指针"

为什么不能以这种方式分配变量,错误究竟意味着什么?

在哪种情况下应该为成员创建指针以及如何将这些指针与 this-> 一起使用?谢谢!

1 个答案:

答案 0 :(得分:4)

在此电话会议中:

 hHook = SetWindowsHookEx(WH_KEYBOARD_LL, this->LowLevelKeyboardProc, hInstance, 0);

您正在尝试传递成员函数:this->LowLevelKeyboardProc,就好像这是一个自由函数(非成员)。这不起作用,成员函数不像自由函数。您只能使用类实例指针和指向成员函数的指针来调用它们。

此API函数SetWindowsHookEx需要自由函数,因此您应该将LowLevelKeyboardProc设为静态,或将其移到类外。