gpt4 book ai didi

c++ - 只使用 C 结构并保持 OOPy?

转载 作者:搜寻专家 更新时间:2023-10-31 00:21:55 25 4
gpt4 key购买 nike

假设你有:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com