Каковы плюсы и минусы пропуска инициализации некоторых переменных-членов в c ++?

Рассмотрим следующий пример:

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 инициализируются или даже если оба не (конструктор по умолчанию) и конструкторы используются для создания универсальных объектов.

-5

Решение

Если нет причины инициализировать переменную, эта переменная вам не нужна
=> Удалить его полностью. Серьезно, неинициализированный var хорош для …? Ничего такого. (только для его инициализации).

Если вы планируете инициализировать его позже, прежде чем использовать:
Можете ли вы гарантировать, что оно получит значение до того, как оно будет впервые прочитано, независимо от того, как часто и в каком порядке вызываются методы класса? Тогда это не «неправильно», но вместо того, чтобы утомительно проверять это (и рисковать ошибками, потому что это сложно), гораздо проще присвоить ему значение в конструкторе.

Нет, намеренно усложнять его — не лучший способ написания кода.

4

Другие решения

Если оставить любую переменную неинициализированной, это позволит ей получить какое-то мусорное значение.

Результат = Неопределенное поведение. И у него нет плюсов.

0

По вопросам рекламы [email protected]