Мы часто используем структуры c ++ для определения структуры данных, а не класса, который может быть законченным модулем с методами-членами. Теперь, в глубине души, мы знаем, что они оба одинаковы (грубо говоря).
Тот факт, что мы часто используем / относимся к структурам как к объектам, содержащим только данные, заставляет нас также не добавлять конструкторы по умолчанию. Но конструкторы всегда хороши, они упрощают работу и помогают устранить ошибки.
Будет ли одобрено добавить конструкторы по умолчанию в мои структуры данных?
Делает ли реализация конструктора по умолчанию также структуру struct Non-POD (обычный старый тип данных) при условии соблюдения других критериев?
Чтобы представить вещи в перспективе, рассмотрим простой пример, но на самом деле структура была бы намного больше.
struct method
{
char name[32];
float temperature;
int duration;
};
Каждый раз, когда я создаю метод, мне приходится беспокоиться (если не сказать больше), если я забыл установить какое-либо значение. Представьте, что я забыл установить temperature
и применить метод к системе, которая теперь имеет случайное высокое значение и вызывает хаос. Или я забыл установить, duration
и теперь метод применяется сам по себе для неизвестной высокой продолжительности.
Почему я должен брать на себя ответственность каждый раз инициализировать объект, а не реализовывать его конструктор, который это гарантирует?
struct
иclass
является то , что один по умолчанию частных и другая общественности.