查看一些 JUCE 示例代码,我遇到了这个函数调用:

Arpeggiator()
{
    addParameter (speed = new AudioParameterFloat ("speed", "Arpeggiator Speed", 0.0, 1.0, 0.5));
}

这只是函数调用中的赋值吗?或者这里还有其他类型的 C++ 魔法吗?

最佳答案



是的。



没有多少魔法,赋值操作的返回值通常是对所分配实例的引用。

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

class Arpeggiator : public Decorator {
public:
     Arpeggiator() {
         speed = new AudioParameterFloat ("speed", "Arpeggiator Speed", 0.0, 1.0, 0.5);
         addParameter (speed); // Probably inherited from Decorator
     }
private:
    AudioParameterFloat* speed;
};

作为 question came up ,如果有重载的赋值运算符会发生什么。

如规范 answer 中的 Operator overloading 所述:

关于C++ 等号函数调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37597761/

10-11 16:32