我有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;
}

07-24 09:33