Что именно является в классе инициализатором? - PullRequest
0 голосов
/ 01 ноября 2018

Я прочитал много текста, в котором упоминался инициализатор в классе, и я искал много вопросов о стековом потоке, однако я не нашел точного объяснения, что такое инициализатор в классе. И насколько я понял, переменная встроенного типа, объявленная вне какой-либо функции, будет инициализирована компилятором по умолчанию, выполняет ли in-class-initilizer то же действие для объявленной переменной?

1 Ответ

0 голосов
/ 01 ноября 2018

Вот простой пример инициализации в классе. Это полезно для меньшего набора текста, особенно когда доступно более одной сигнатуры конструктора. Рекомендуется также в основных рекомендациях .

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
};

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...