创建新对象并立即在其上设置属性时编译器错误

Wol*_*and 2 c++

我有以下代码

Parameters[FilterMorph] = new KnobCtr(processorEditor)->SetId("FilterMorph")->SetBounds(100, 100)->AddAttachment();
Run Code Online (Sandbox Code Playgroud)

错误消息是:

Error   C2143   syntax error: missing ';' before '->'   
Run Code Online (Sandbox Code Playgroud)

但如果我这样做,如下

KnobCtr * ctr = new KnobCtr(processorEditor);
Parameters[FilterMorph] = ctr->SetId("FilterMorph")->SetBounds(100, 100)->AddAttachment();
Run Code Online (Sandbox Code Playgroud)

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

参数是指针映射

lll*_*lll 5

这是因为运算符优先级,您需要在括号周围添加一个括号new:

Parameters[FilterMorph] = (new KnobCtr(processorEditor))->SetId("FilterMorph")->SetBounds(100, 100)->AddAttachment();
Run Code Online (Sandbox Code Playgroud)