包装操作符重载方法
Wrap an Operator overloading method
如何在使用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];
}
}
就是这样,通过定义索引器和包装本机重载操作符的函数。
简而言之,您必须重新定义并确定如何将本机函数公开给托管环境。
相关文章:
- C++:涉及继承和"using"时的方法重载
- 如何让编译器在C++中更喜欢常量方法重载?
- 为什么方法重载或枚举标志定义会触发 gcc7.2 编译器警告?
- C++模板方法重载和具有多态性的类访问
- 基于方法重载类
- 方法重载 C++ -> 只有一个方法调用
- 如何使用 SFINAE 禁用方法重载集?
- 使用类别方法重载 NSDecimalNumber 上的算术运算符
- C++继承和方法重载混淆
- 多态性和方法重载在C++中几乎是一样的
- 了解方法重载规则
- c++编译错误涉及方法重载的2个模板函数
- Qt/Qml 和方法重载
- 参数或方法重载的幻数
- 为什么C++更喜欢这个模板方法而不是方法重载
- C++方法重载
- 在C++中使用非友元方法重载 I/O 运算符 |&istream 和 &ostream 函数
- 插入方法重载
- 函数重载和方法重载之间的区别
- 正在解决跨基类的虚拟方法重载