我有以下代码
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();
关于c++ - 创建新对象并立即为其设置属性时出现编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50482858/