【发布时间】:2021-01-07 16:40:38
【问题描述】:
长话短说,我正在尝试构建一个包装器以从 C 主函数访问 C++ 源代码(由于嵌入式系统,我必须进行转换);但是,在不创建该类的实例的情况下,我无法将类中的方法调用到外部函数。
我想从我的 C 代码中传递这个 *side 指针,计算它的立方,并返回立方值。我已经用简单的指针函数和变量测试了我的包装器,它工作得很好,但是我在使用类方法时遇到了问题。这是我的源代码,我在最后一行犯了错误......:
class Cube
{
public:
static int getVolume(int *side)
{
return *side * *side * *side; //returns volume of cube
}
};
void Cube_C(int *side)
{
return Cube.getVolume(*side);
}
【问题讨论】:
-
为什么 side 是
int*而不仅仅是int? -
您好!它是一个 int*,因为我从 C 中输入一个值。我的 C 代码如下所示:
int cubeSide = 5; printf("Cube of 5 is: %d\n\n", GetVolume_C(&cubeSide));同时我在头文件中使用extern"C"将 C 与 C++ 链接起来。 -
我仍然不明白为什么需要将其作为指针而不是普通的
int发送?如果您在我给出的答案中查看我的示例,则没有指针。
标签: c++ class methods instance call