Często używamy struktur c ++ do definiowania struktury danych w przeciwieństwie do klasy, która może być kompletnym modułem z metodami składowymi. W głębi duszy wiemy, że oba są takie same (luźno mówiąc).
Fakt, że często używamy / traktujemy struktury jako jednostki tylko danych, powoduje, że nie dodajemy również domyślnych konstruktorów. Ale konstruktory są zawsze świetne, upraszczają i pomagają eliminować błędy.
Czy byłoby rozczarowanie, gdyby dodać domyślne konstruktory do moich struktur danych?
Czy implementacja domyślnego konstruktora powoduje, że struct Non-POD (zwykły stary typ danych), pod warunkiem spełnienia innych kryteriów?
Patrząc z perspektywy, rozważmy prosty przykład, ale w rzeczywistości struktura byłaby znacznie większa.
struct method
{
char name[32];
float temperature;
int duration;
};
Za każdym razem, gdy tworzę metodę, muszę się martwić (delikatnie mówiąc), czy zapomniałem ustawić jakąś wartość. Wyobraź sobie, że zapomniałem ustawić temperaturei zastosować metodę do systemu, który ma teraz losowo wysoką wartość i powoduje chaos. Lub zapomniałem ustawić, durationa teraz metoda stosuje się przez nieznany długi czas.
Dlaczego powinienem brać odpowiedzialność za inicjalizację obiektu za każdym razem zamiast implementować jego konstruktor, który to gwarantuje?
structi classjest to, że domyślnie prywatny, a drugi do publicznej wiadomości.