查看一些 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/