Что именно является в классе инициализатором?

Я прочитал много текстов, в которых упоминался инициализатор в классе, и я искал много вопросов по 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
};

Поскольку члены данных явно инициализируются, вторая часть ваших вопросов не относится к инициализации в классе.

Другие вопросы по тегам