c++ - 创建新对象并立即为其设置属性时出现编译器错误

标签 c++

我有以下代码

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/

相关文章:

c++ - 稍后调用 Class 构造函数创建 std::vector<Class>

Android 应用程序在加载经过训练的 tensorflow protobuf 模型后崩溃

c++ - 如何找到机器代码指令的结尾以增加指令指针

c++ - 我可以使用动态数组作为 C++ 模板类型名吗?

C++ 在自定义类/结构数组的构造函数中获取数组键?

c++ - Onvif - 获取放大倍数

c++ - 为什么 double 的值在分配后似乎发生了变化?

Java 方法调用比 C++ 中的虚拟方法调用更快?

C++如何确定互斥量是否被单个线程不成比例地占用而阻塞其他线程

c++ - 奇数组中包含的数字