L'errore è abbastanza chiaro. Quando stai cercando di allocare un array:
Record *room = new Record[5];
un costruttore predefinito, cioè Record::Record()
, deve essere implementato in modo che 5 istanze di Record
può essere creato:
struct Record
{
...
Record() : average(0.0) { }
Record(int s[], double a) { ... }
};
Si noti inoltre che l'allocazione dinamica è qualcosa che vuoi evitare il più possibile in C ++ (tranne le situazioni in cui hai davvero buone ragioni per questo). In questo caso sarebbe più ragionevole usare un std::vector
invece:
std::vector<Record> records(5);