参数初始化

Initialization with parameters

我正在学习有关使用 C++ 进行音频编程的教程,但有些地方我不明白;第四行应该代表什么?我知道我没有创建 AudioObject 的实例,因为我没有使用 new 关键字实例化它。但是为什么可以给它赋属性呢?这非常类似于一个函数声明,这让我感到困惑,因为声音在我的 main 中的其他地方被用作参考。例如

SampleInfo info; //struct
info.volume = 1.0;

AudioObject sound(info, data); //<--this line


//why can assign info, data

您实际上是在使用 automatic storage duration 创建 AudioObject 的实例,但不是动态分配的实例(通过 new)。 infodata 是您传递给构造函数的参数。避免使用 new 除非你真的需要它,C++ 不是 Java.