我在Matlab中有一个句柄类,我希望能够在C ++中使用它。 我已经学会here我不能生成一个C ++类,但必须用函数包装我的类。 另一个问题中的示例仅显示在包装函数中使用一个成员函数。但是,我需要能够调用我班级的几个成员函数。
由于我无法将我的类实例传递给包装函数as per the Matlab documentation,因此我没有看到在同一对象上运行多个函数的方法。
不可能这样做吗?
感谢任何帮助。
答案 0 :(得分:1)
您不能将类作为生成代码的主函数的输入和输出。但是您可以从主函数调用任意数量的子函数,这些子函数可以将对象作为输入。该对象通常从主函数创建并传递给子函数。然后使用codegen" main function name"生成代码。生成的代码包含所有子函数。
您还应该在子功能中使用coder.inline('never')
,以便它们在生成的代码中显示为单独的函数。
答案 1 :(得分:0)
我没有看到让多个函数对同一个对象进行操作的方法。
为什么不呢?您只需使用pointer
作为输入参数。
int main() {
int myarr[5] = {1, 2, 3, 4, 5};
double myval1, myval2;
myval = myfun1(myarr, 100); // myarr is unchanged
myfun2(&myarr, 200); // myarr now has new values
return 0;
}
double myfun1(int *arr, int para1) {
// @TODO1
}
void myfun2(int *arr, int para2) {
// @TODO2: here you can change value of *arr which is returned back to the calling function
}
myarr
可以更改为您想要的任何课程。