Есть ли у примитивных типов также конструкторы в C ++?

Я прочитал в книге доктора Бьярна Страуструпа «Язык программирования C ++», 3-е издание, в которой встроенные типы также имеют конструкторы на C ++ в разделе 10.4.2.

Но тогда следующая ссылка говорит, что типы POD не могут иметь конструкторов:

http://www.parashift.com/c++-faq-lite/pod-types.html

Что является правдой? Есть ли у примитивных типов также конструкторы в C ++?

6

Решение

Бьярне означает, что вы можете написать int(56) или даже int() построить целое число. Что ссылки означают, что структура / класс только POD, если у него нет объявленного конструктора. Таким образом, Бьярне говорит о примитивных неструктурных типах, а ссылка говорит о структурах / классах, чтобы два источника могли сосуществовать, не противореча друг другу.

Вот часть определения по ссылке:

Нестатические члены данных типа POD должны быть открытыми и могут быть любого из этих типов.

Конечно, это может быть только для структур. int не имеет «членов данных». Таким образом, хотя ссылка никогда не упоминает это непосредственно, это относится только к структурам и классам.

8

Другие решения