LINUX.ORG.RU

Инициализация членов класса

 


0

2

Подскажите ответ на вопрос, не смог ничего нагуглить

Where do you initialize a non-static class member that is a reference?

  1. Point of declaration only

  2. Member initialization list only

  3. Point of declaration and member initialization list

  4. Member initialization list and body of constructor

  5. Body of constructor only

Попробовал бы инициализировать во всех трёх местах:

https://gcc.godbolt.org/z/P8zsa6

и посмотрел бы где ругнулось

итого: Point of declaration and member initialization list

https://gcc.godbolt.org/z/91vWv5

не смог ничего нагуглить

просто учись проводить эксперименты, а не гуглить.

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)

Через фигурные скобки в хедере. Остальное мусор.

ox55ff ★★★★★
()
Ответ на: комментарий от Kroz

Ещё (кроме перечисленного в вопросе) в месте инициализации объекта класса можно:

struct S { int&& ri; };
S s { 1488 };
anonymous
()

Название двусмысленное какое-то.

anonymous
()
Ответ на: комментарий от fsb4000

Правильным ответом видимо будет - зависит от стандарта:)

Одно из двух(для >= 11 второе):

Member initialization list only

Point of declaration and member initialization list

pon4ik ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.