包装操作符重载方法

Wrap an Operator overloading method

本文关键字:方法 重载 操作符 包装      更新时间:2023-10-16

如何在使用c++/CLI的非托管c++代码中包装执行操作符重载的方法?

我在一个组织工作,我没有太多的访问他们的源代码,因此不太清楚操作符重载函数到底是做什么的。那么,是否有一种方法来包装这个方法,而不是在c++/CLI中重新定义它?

我不完全明白,但是,包装本机代码意味着在托管函数中覆盖和执行它。例如,你想包装这个类:

//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];
  }
}

就是这样,通过定义索引器和包装本机重载操作符的函数。

简而言之,您必须重新定义并确定如何将本机函数公开给托管环境。