Geralmente usamos estruturas c ++ para definir a estrutura de dados em oposição à classe, que pode ser um módulo completo com métodos membros. Agora, no fundo, sabemos que ambos são os mesmos (falando vagamente).
O fato de frequentemente usarmos / tratarmos estruturas como entidades apenas de dados cria essa necessidade de não adicionarmos construtores padrão também. Mas os construtores são sempre ótimos, eles simplificam as coisas e ajudam a eliminar erros.
Seria desaprovado se adicionar construtores padrão às minhas estruturas de dados?
O construtor padrão de implementação também cria a estrutura Non-POD (tipo de dados antigo simples), desde que outros critérios sejam atendidos?
Para colocar as coisas em perspectiva, considere um exemplo simples, mas, na realidade, a estrutura seria muito maior.
struct method
{
char name[32];
float temperature;
int duration;
};
Toda vez que crio um método, tenho que me preocupar (para dizer o mínimo) se esqueci de definir algum valor. Imagine que eu esqueço de definir temperature
e aplicar o método ao sistema, que agora é um valor alto aleatório e causa confusão. Ou eu esqueci de definir duration
e agora o método se aplica por uma alta duração desconhecida.
Por que eu deveria assumir a responsabilidade de inicializar o objeto todas as vezes em vez de implementar seu construtor que o garante?
struct
e class
é que um é o padrão para privado e o outro para público.