我有以下代码

Parameters[FilterMorph] = new KnobCtr(processorEditor)->SetId("FilterMorph")->SetBounds(100, 100)->AddAttachment();

错误消息是:
Error   C2143   syntax error: missing ';' before '->'

但是如果我这样做如下
KnobCtr * ctr = new KnobCtr(processorEditor);
Parameters[FilterMorph] = ctr->SetId("FilterMorph")->SetBounds(100, 100)->AddAttachment();

一切都很好
为什么会这样呢?

参数是指针映射

最佳答案

这是因为存在operator precedence,您需要在new周围添加一个括号:

Parameters[FilterMorph] = (new KnobCtr(processorEditor))->SetId("FilterMorph")->SetBounds(100, 100)->AddAttachment();

10-08 09:29