如何使用C ++ / CLI包装在非托管C ++代码中执行运算符重载的方法?
我在一个组织工作,我没有太多访问他们的源代码,因此不太了解运算符重载函数究竟做了什么。那么有没有办法包装这个方法而不是在C ++ / CLI中重新定义它?
答案 0 :(得分:1)
我不完全理解,但是,包装本机代码意味着在托管函数中覆盖并执行它。例如,您想要包装此类:
//Native code
class NativeClass
{
std::vector<int> data;
public:
int operator[] (int index)
{
return data[index];
}
}
//Managed code
public ref class ManagedClass
{
NativeClass * nativeClass;
public:
property int default [int]
{
int get (int index) { return (*nativeClass)[index]; }
}
int GetData(int index)
{
return (*nativeClass)[index];
}
}
您可以通过定义索引器和包装本机重载运算符的函数来实现。
简短回答您必须重新定义并确定如何将本机功能公开给托管环境。这就是包装的意思。