[Перевод] Что значит инициализировать int в C++?
Недавно я получил по почте от Сэма Джонсона этот вопрос. Вот слегка отредактированное письмо Сэма:
«Возьмём для примера этот код в локальной области видимости функции:
int a;
a = 5;
Многие люди считают, что инициализация происходит в строке 1, потому что веб-сайты наподобие cppreference дают такое определение: "Инициализация переменной предоставляет его начальное значение на момент создания".
Однако я убеждён, что инициализация происходит в строке 2, потому что [в разных хороших книгах по C++] инициализация определяется как первое существенное значение, попадающее в переменную.
Можете ли вы сказать, какая строка считается инициализацией?»
Отличный вопрос. На Cppreference написано правильно, и для всех классовых типов ответ прост: объект инициализируется в строке 1 вызовом его стандартного конструктора.
Но (а вы ведь знали, что будет «но») для локального объекта фундаментального встроенного типа наподобие int ответ будет... чуть более сложным. И именно поэтому Сэм задал этот вопрос, ведь он знает, что язык достаточно свободно обращается с инициализацией таких локальных объектов по историческим причинам, имевшим в то время смысл.
Короткий ответ: вполне допустимо говорить, что переменная получает своё исходное значение в строке 2. Но заметьте, что я намеренно не сказал «Объект инициализируется в строке 2», к тому же и код, и этот ответ обходят молчанием более важный вопрос: «Ну ладно, а что, если код между строками 1 и 2 попробует считать значение объекта?»
Читать далееИсточник: Хабрахабр
Похожие новости
- Gartner's AI Tech Sandwich: Едим ИИ-бутерброд правильно
- Как искусственный интеллект трансформирует SASE и Нулевое доверие в современной корпоративной инфраструктуре
- 5 нейроинструментов, которые помогают создавать хорошие изображения
- 35% маркетологов недовольны отсутствием удалёнки
- Как создать эффектный и бесполезный вирусный контент
- 7 самых распространенных ошибок при внесении ПО и ПАК в МинЦифры и как этого избежать
- Бюджеты иностранных рекламодателей в VK Рекламе выросли по итогу первого квартала 2025 года
- 37% предпринимателей управляют маркетингом лично: подходы разных поколений к маркетингу
- Обзор интерактивной выставки «Спорт будущего в настоящем» в Государственном музее спорта
- SmartCaptcha Yandex на iOS: инструкция по внедрению