ссылка не работает :(
прочтенияэто статья, которую я подчеркнул, чтоint ()
дает 0, потому что временныйint
значение инициализировано, а не потому чтоint()
вызывает конструктор по умолчанию дляint
, (Статья ошибочна, насколько я понимаю.)
Я также сказал, что примитивные (встроенные) типы не имеют конструкторов. Оригинальный автор попросил меня проверить Раздел $ 10.4.2 (TC ++ PL), в котором говорится
Встроенные типы также имеют конструкторы по умолчанию ($ 6.2.8)
Но я все еще думаю, что утверждение «C ++ позволяет даже встроенным типам (примитивным типам) иметь конструкторы по умолчанию». имеет недостатки (согласно C ++ 03).
Я думаю, что Бьярне в TC ++ PL перепутал конструктор как нотация, т.е.()
"с реальным вызовом конструктора. Инициализация значения не была введена в то время, когда Бьярн писал книгу, верно? Так что текст в TC ++ PL некорректен в соответствии с C ++ 98 и C ++ 03?
Что вы ребята думаете?
РЕДАКТИРОВАТЬ
Я лично спросил Бьярне (по почте) о некорректном тексте в TC ++ PL, и это был его ответ
Я думаю, что вы путаете «фактические вызовы конструктора» с концептуально имеющим конструктор.Считается, что встроенные типы имеют конструкторы (какие бы слова ни использовались стандартом для описания их поведения).