Usiamo spesso le strutture c ++ per definire la struttura dei dati rispetto alla classe che può essere un modulo completo con metodi membri. Ora in fondo, sappiamo che entrambi sono uguali (parlando liberamente).
Il fatto che spesso utilizziamo / trattiamo le strutture come entità solo dati crea questo impulso a non aggiungere anche costruttori predefiniti. Ma i costruttori sono sempre fantastici, rendono le cose più semplici e aiutano a eliminare gli errori.
Sarebbe disapprovato se aggiungere costruttori predefiniti alle mie strutture di dati?
L'implementazione del costruttore predefinito rende anche la struttura Non-POD (semplice vecchio tipo di dati) purché siano soddisfatti altri criteri?
Per mettere le cose in prospettiva, considera un semplice esempio ma in realtà la struttura sarebbe molto più grande.
struct method
{
char name[32];
float temperature;
int duration;
};
Ogni volta che creo un metodo, devo preoccuparmi (per non dire altro) se ho dimenticato di impostare un valore. Immagina di dimenticare di impostare temperature
e applicare il metodo al sistema che ora è un valore casuale elevato e causa caos. Oppure ho dimenticato di impostare duration
e ora il metodo si applica per una durata sconosciuta.
Perché dovrei assumermi la responsabilità di inizializzare l'oggetto ogni volta invece di implementare il suo costruttore che lo garantisce?
struct
ed class
è che uno di default è privato e l'altro è pubblico.