Ми часто використовуємо структури c ++ для визначення структури даних на відміну від класу, який може бути повним модулем з методами-членами. Тепер у глибині душі ми знаємо, що вони обоє однакові (слабко кажучи).
Той факт, що ми часто використовуємо / трактуємо структури як сукупності лише для даних, створює це заклик до того, що ми також не додаємо конструкторів за замовчуванням. Але конструктори завжди чудові, вони спрощують справи і допомагають усунути помилки.
Чи нахмуриться це, якщо до моїх даних даних додати конструктори за замовчуванням?
Чи реалізує конструктор за замовчуванням також структуру Non-POD (звичайний старий тип даних) за умови дотримання інших критеріїв?
Щоб поставити речі в перспективу, розглянемо простий приклад, але насправді структура буде набагато більшою.
struct method
{
char name[32];
float temperature;
int duration;
};
Кожен раз, коли я створюю метод, мені доводиться хвилюватися (якщо не менше), якщо я забув встановити якесь значення. Уявіть, що я забув встановити temperatureі застосувати метод до системи, яка зараз є випадково високою цінністю і спричиняє хаос. Або я забув встановити, durationі тепер метод застосовується для невідомо великої тривалості.
Чому я повинен брати на себе відповідальність за ініціалізацію об'єкта щоразу, а не впроваджувати його конструктор, який це гарантує?
structі classє те , що один з замовчуванням приватних і інша громадськості.