O erro é bastante claro. Quando você estiver tentando alocar uma matriz:
Record *room = new Record[5];
um construtor padrão, ou seja, Record::Record()
, deve ser implementado para que 5 instâncias de Record
pode ser criado:
struct Record
{
...
Record() : average(0.0) { }
Record(int s[], double a) { ... }
};
Observe também que a alocação dinâmica é algo que você deseja evitar o máximo possível no C ++ (exceto as situações em que você tem realmente um bom motivo para isso). Nesse caso, seria mais razoável usar um std::vector
em vez de:
std::vector<Record> records(5);