说您有:

struct c_struct {
   int value;
   /* other stuff */
   void (* dump)();
};

并且您希望在某个时候:
c_struct_obj->dump();

我假设您无法实例化c_struct对象,以使其特定的“转储”函数以C++方法了解成员变量的方式(通过我想为隐式“this”)知道其特定的“值”?我想我已经知道答案了(“否”)。如果是这样,还有其他以OOPy方式使用C结构的方法吗?

最佳答案

当然,您只需要自己传递this:

struct c_struct {
    int value;
    /* other stuff */
    void (* dump)(struct c_struct *this);
};

然后调用:
c_struct_obj->dump(c_struct_obj);

关于c++ - 仅使用C结构并保持OOPy?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3971554/

10-13 03:57