错误很明显。到您试图分配一个数组时:
Record *room = new Record[5];
默认构造函数,即 Record::Record()
, ,必须实施,以便5个实例 Record
可以创建:
struct Record
{
...
Record() : average(0.0) { }
Record(int s[], double a) { ... }
};
另请注意,动态分配是您想要在C ++中尽可能避免的(除了有充分理由的情况除外)。在这种情况下,使用 std::vector
反而:
std::vector<Record> records(5);