car*_*921 2 c c++ struct member-function-pointers function-pointers
说你有:
struct c_struct {
int value;
/* other stuff */
void (* dump)();
};
Run Code Online (Sandbox Code Playgroud)
而且你想在某个时候:
c_struct_obj->dump();
Run Code Online (Sandbox Code Playgroud)
我假设你无法实例化一个c_struct对象,使得它的特定"转储"函数知道它的特定"值",就像C++方法知道成员变量一样(通过隐含的"这个"我想)?我想我已经知道了答案("不").如果是这样,是否有其他方式以OOPy方式使用C结构?
当然,你只需this自己过去:
struct c_struct {
int value;
/* other stuff */
void (* dump)(struct c_struct *this);
};
Run Code Online (Sandbox Code Playgroud)
然后调用它:
c_struct_obj->dump(c_struct_obj);
Run Code Online (Sandbox Code Playgroud)