我有以下代码
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)
一切都很好,为什么会这样呢?
参数是指针映射
这是因为运算符优先级,您需要在括号周围添加一个括号new:
Parameters[FilterMorph] = (new KnobCtr(processorEditor))->SetId("FilterMorph")->SetBounds(100, 100)->AddAttachment();
Run Code Online (Sandbox Code Playgroud)