长话短说,我正在尝试构建一个包装程序以从C主函数访问C ++源代码(由于嵌入式系统,我必须进行转换)。但是,在不创建该类的实例的情况下,无法从类调用方法到外部函数。
我想*side
从我的C代码中传递此指针,计算它的多维数据集,然后返回该多维数据集的值。我已经用简单的指针函数和变量测试了包装器,它工作得很好,但是我在使用类方法时遇到了麻烦。这是我的源代码,由于我在最后一行犯了错误...:
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);
}
您可以在static
没有实例的情况下调用类的成员函数:只需在成员函数名之前添加类名,然后在作用域解析运算符(::
)之前添加(而不是.
您尝试过的类成员运算符)。
此外,在你的Cube_C
功能,你应该不取消引用side
指针,因为getVolume
函数需要一个int *
指针作为其参数。并且您需要将该函数的返回类型声明为int
(不是void
):
int Cube_C(int *side)
{
return Cube::getVolume(side);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句