Ошибка довольно ясна. К тому времени, когда вы пытаетесь выделить массив:
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);