Я прочитал в книге доктора Бьярна Страуструпа «Язык программирования C ++», 3-е издание, в которой встроенные типы также имеют конструкторы на C ++ в разделе 10.4.2.
Но тогда следующая ссылка говорит, что типы POD не могут иметь конструкторов:
http://www.parashift.com/c++-faq-lite/pod-types.html
Что является правдой? Есть ли у примитивных типов также конструкторы в C ++?
Бьярне означает, что вы можете написать int(56)
или даже int()
построить целое число. Что ссылки означают, что структура / класс только POD, если у него нет объявленного конструктора. Таким образом, Бьярне говорит о примитивных неструктурных типах, а ссылка говорит о структурах / классах, чтобы два источника могли сосуществовать, не противореча друг другу.
Вот часть определения по ссылке:
Нестатические члены данных типа POD должны быть открытыми и могут быть любого из этих типов.
Конечно, это может быть только для структур. int
не имеет «членов данных». Таким образом, хотя ссылка никогда не упоминает это непосредственно, это относится только к структурам и классам.