El error está bastante claro. Para cuando intentes asignar una matriz:
Record *room = new Record[5];
un constructor predeterminado, es decir Record::Record()
, debe implementarse para que 5 instancias de Record
se puede crear:
struct Record
{
...
Record() : average(0.0) { }
Record(int s[], double a) { ... }
};
También tenga en cuenta que la asignación dinámica es algo que desea evitar tanto como sea posible en C ++ (excepto en las situaciones en las que tiene una buena razón para ello). En este caso, sería más razonable usar un std::vector
en cambio:
std::vector<Record> records(5);