Рассмотрим следующий пример:
Aclass.h
class Aclass()
{
private:
int something;
double nothing;
};
Aclass.cpp
#include "Aclass.h"
Aclass::Aclass (int x) {
something = x;
nothing = y;
}
//Write some functions to manipulate x and y.
Итак, какая разница, если я пропущу инициализацию y
в конструкторе? Что является недостатком и как это влияет на оставшуюся часть кода? Это хороший способ кодирования? Что я знаю, так это то, что конструктор все равно создаст объект x
а также y
инициализируются или даже если оба не (конструктор по умолчанию) и конструкторы используются для создания универсальных объектов.
Если нет причины инициализировать переменную, эта переменная вам не нужна
=> Удалить его полностью. Серьезно, неинициализированный var хорош для …? Ничего такого. (только для его инициализации).
Если вы планируете инициализировать его позже, прежде чем использовать:
Можете ли вы гарантировать, что оно получит значение до того, как оно будет впервые прочитано, независимо от того, как часто и в каком порядке вызываются методы класса? Тогда это не «неправильно», но вместо того, чтобы утомительно проверять это (и рисковать ошибками, потому что это сложно), гораздо проще присвоить ему значение в конструкторе.
Нет, намеренно усложнять его — не лучший способ написания кода.
Если оставить любую переменную неинициализированной, это позволит ей получить какое-то мусорное значение.
Результат = Неопределенное поведение. И у него нет плюсов.