我有一个C++/CLI项目,它引用了一个C*yDLL,并且我需要实现一个接口类。
C中的接口类如下:
public interface IMeshData{
//(...)
INode NodeById(int nodeId);
double[] NodeXYZById(int nodeId);
}
在C++项目中,我可以实现这个接口:
public ref class IMeshData_class : public IMeshData{
public:
//this one is accepted:
virtual INode^ NodeById(int nid){
return this->NodeById(nid);
}
//this one gives me an error:
virtual double* NodeXYZById(int nid){
return this->NodeXYZById(nid);
}
}
当我第一次定义上面没有任何成员函数的类时,我得到了错误:
错误:类未能实现接口成员函数“imeshdata::nodebyid”(在(….dll)中声明)
所以在定义了函数之后
NodeById
,此错误消失,我得到:
错误:类未能实现接口成员函数“IMESHData::NODEXYZBYID”(在(….dll)中声明)
NodeXYZById
返回A
double[]
我以为这会
翻译
到A
double*
在C++中,但情况似乎并非如此。
如何正确实现C++中返回数组的C++成员函数?