Что именно является в классе инициализатором?
Я прочитал много текстов, в которых упоминался инициализатор в классе, и я искал много вопросов по stackru, однако я не нашел точного объяснения, что такое инициализатор в классе. И насколько я понял, переменная встроенного типа, объявленная вне какой-либо функции, будет инициализирована компилятором по умолчанию, выполняет ли in-class-initilizer то же действие для объявленной переменной?
1 ответ
Решение
Вот простой пример для инициализации в классе. Это полезно для меньшего набора текста, особенно когда доступно более одной сигнатуры конструктора. Это также рекомендуется в основных принципах.
class Foo {
public:
Foo() = default; // No need to initialize data members in the initializer list.
Foo(bool) { /* Do stuff here. */ } // Again, data member already have values.
private:
int bar = 42;
// ^^^^ in-class initialization
int baz{};
// ^^ same, but requests default initialization
};
Поскольку члены данных явно инициализируются, вторая часть ваших вопросов не относится к инициализации в классе.