C++ C++;函数调用中的等于号?

C++ C++;函数调用中的等于号?,c++,C++,回顾一些JUCE示例代码,我遇到了以下函数调用: Arpeggiator() { addParameter (speed = new AudioParameterFloat ("speed", "Arpeggiator Speed", 0.0, 1.0, 0.5)); } 这只是函数调用中的赋值吗?或者这里还有其他C++魔法吗? 这只是函数调用中的赋值吗 对 或者这里还有其他C++魔法吗?< /P> 赋值操作的返回值通常是对已赋值实例的引用 所以它相当于(我怀疑这是构造函数代码):

回顾一些JUCE示例代码,我遇到了以下函数调用:

Arpeggiator()
{
    addParameter (speed = new AudioParameterFloat ("speed", "Arpeggiator Speed", 0.0, 1.0, 0.5));
}
这只是函数调用中的赋值吗?或者这里还有其他C++魔法吗? 这只是函数调用中的赋值吗

或者这里还有其他C++魔法吗?< /P> 赋值操作的返回值通常是对已赋值实例的引用

所以它相当于(我怀疑这是构造函数代码):


作为示例,如果存在重载赋值运算符,会发生什么情况

如本规范中所述:

赋值运算符 关于这项任务有很多话要说。但是,其中大部分已经在中说过了,因此我将在这里跳过大部分内容,只列出完美赋值运算符以供参考:

X& X::operator=(X rhs)
{
   swap(rhs);
   return *this;
}

我无法判断,因为
=
运算符可能过载,并且没有
速度及其类型的声明/定义。通常,这用于分配
速度的值,并将该值传递到同一行上的
addParameter()
。addParameter可能是宏,而不是函数, maybe@MikeCAT无法为
AudioParameterFloat*
重载
运算符=()
。嗯,
speed
可能是其他的东西,但是按照惯例,重载的
操作符=()
应该返回对该实例的引用。如果
操作符=
重载,并且它不返回相同的东西,该怎么办?@NathanOliver然后代码就会失败,“这在任何时候都有问题吗?”纳萨诺利夫说,那么这个库的设计相当糟糕。另一方面,它看起来像是这个库中命名参数的版本。有人可能会说,在函数调用之外,命名参数没有意义,在这种情况下,提取的赋值将出现错误。
X& X::operator=(X rhs)
{
   swap(rhs);
   return *this;
}