LINUX.ORG.RU

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

Насколько я помню, если не указать вызов конструктора явно, вызовется конструктор по умолчанию (т.е. без параметров). Видимо, в данном случае это не устраивало.

tailgunner ★★★★★
()

Список инициализации.
Если сам не инициализируешь , произойдёт иниц. по умолчанию.

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

>А разве он не вызывается при создании Sample?

1) У value может и не быть конструктора без параметров

2) Если у value есть конструктор без параметров, то без :value(1) вызываемый конструктор по умолчанию возможно делал бы лишнюю работу. ( В конструкторе Sample пришлось бы писать код, который перелывает value() в value(1) )

zaregazza
()

Ну и в заключение, чтобы жизнь мёдом не казалась, добавлю, что простые типы вроде int, по умолчанию _не_ инициализируются, хоть и имеют семантический конструктор, инициализирующий нулевым значением. Поэтому для обычных переменных разницы нет, где инициализировать, в списке инициализации или в теле конструктора.

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

>А вообще такие вопросы надо изучать по книжке, а не по форуму.

+1 Полностю согласен! Сам вчера в книжке как раз эту тему проходил :)

Кстати, в некоторых случаях (константные члены и члены-ссылки) никак иначе, кроме как при ицициализации значение по умолчанию присвоить нельзя.

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