A menudo usamos estructuras c ++ para definir la estructura de datos en lugar de la clase, que puede ser un módulo completo con métodos miembros. Ahora en el fondo, sabemos que ambos son iguales (hablando en términos generales).
El hecho de que a menudo usemos / tratemos estructuras como entidades de solo datos crea esta necesidad de no agregar también constructores predeterminados. Pero los constructores siempre son excelentes, simplifican las cosas y ayudan a eliminar errores.
¿Sería mal visto si agrego constructores predeterminados a mis estructuras de datos?
¿La implementación del constructor predeterminado también hace que la estructura no sea POD (tipo de datos antiguo simple) siempre que se cumplan otros criterios?
Para poner las cosas en perspectiva, considere un ejemplo simple, pero en realidad la estructura sería mucho más grande.
struct method
{
char name[32];
float temperature;
int duration;
};
Cada vez que creo un método, tengo que preocuparme (por decir lo menos) si olvidé establecer algún valor. Imagine que me olvido de configurar temperature
y aplicar el método al sistema que ahora es un valor alto aleatorio y causa caos. O me olvidé de configurar duration
y ahora el método se aplica por una alta duración desconocida.
¿Por qué debería asumir la responsabilidad de inicializar el objeto cada vez en lugar de implementar su constructor que lo garantiza?
struct
y class
es que uno predeterminado es privado y el otro público.