c++ - 在没有类实例的情况下调用 C++ 类方法?
问题描述
长话短说,我正在尝试构建一个包装器来从 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
(not void
):
int Cube_C(int *side)
{
return Cube::getVolume(side);
}
推荐阅读
- java - 具有弹簧安全性的外部 SSO
- java - 如何在 RecyclerView 的 Adapter 中使用 SeekBar?
- flutter - Flutter TextFormField 带有动态后缀图标
- sql-server - 使用 SSMS 将 Azure 数据库备份到 .BAK 文件?
- angular - httpClient oninit 和 ondestroy 方法
- python-3.x - 通过beautifulsoup 将两张单独的图表合并为一张
- javascript - 无法将 Solidity 合约部署到 Rinkeby 网络(无效的 asm.js:stdlib 的无效成员)
- apache-spark - PySpark - 爆炸时访问结构字段名称和值
- python - Python中的逻辑根据数据框中列中的最大值仅返回相似行中的一行
- iis - 除非刷新应用程序池,否则无法验证 AD 用户