我有C++/CLI类,它定义了一个属性:
public ref class AbstractOffer
{
public:
AbstractOffer();
property String^ Body;
};
在某些函数中,
AbstractOffer
类由const ref传递foo(const AbstractOffer^ ao)
{
ao->Body;
}
当我调用属性时,方法编译器会给出以下错误:
错误C2662:“ivrworx::interop::abstractOffer::body::get”:无法
从“const ivrworx::interop::abstractoffer”转换“this”指针
到“ivrworx::interop::abstractoffer%”1>转换失败
限定词
它似乎与康斯特有关。如果对象引用由const传递,我如何调用对象的
Body
属性? 最佳答案
我唯一知道的办法就是赶走女警察。只要你不修改对象,就应该没事。(如果你修改它,我不知道结果会是什么)。
即,将您的功能更改为
void foo(const AbstractOffer^ ao)
{
const_cast<AbstractOffer^>(ao)->Body;
}