|
1 / 1 / 0
Регистрация: 31.03.2019
Сообщений: 144
|
|
При запуске C++ программы, какие типы переменных инициируются нулями?28.06.2019, 08:30. Показов 2264. Ответов 12
Метки нет (Все метки)
Добрый день.
Это правда, что при создании объекта класса, его поля содержат мусор ? Я хочу иметь “шпаргалку” : Какие сущности инициируется автоматом, а какие надо устанавливать вручную. Помогите составить: 1) Локальные переменные функции ? 2) Статические переменные в функции, или в файле ? 3) Поля класса ? 4) Статические Поля класса ? 5) Глобальные переменные ? 6) Структуры/Массивы как переменные файла ? 7) Структуры/Массивы как поля класса ? 8) Структуры/Массивы как локальные переменные функции ? 9) Память выделенная через new ? 10) ... 11) ... что еще записать в шпаргалку ? Заранее спасибо.
0
|
|
| 28.06.2019, 08:30 | |
|
Ответы с готовыми решениями:
12
Почему при вводе русского текста после cout<< при запуске программы выписывает какие то каракули При запуске Google Chrome запускается поисковик Trotux и устанавливаются какие-то китайские программы При запуске ОС устанавливаются сторонние программы,а при запуске браузера Chrome расширения |
|
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 242
|
|
| 28.06.2019, 08:41 | |
|
1
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 28.06.2019, 08:44 | |||
|
Для всего остального должен быть в том или ином виде написан инициализирующий код.
1
|
|||
|
1 / 1 / 0
Регистрация: 31.03.2019
Сообщений: 144
|
||
| 28.06.2019, 09:18 [ТС] | ||
|
но для меня пока терминология сложная(пользовательские и встроенные типы)... Например, Массив и Структура будет содержать мусор, если они локальные ? А глобальные Массив и Структура инициируются нулями?
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 28.06.2019, 09:36 | |||
|
1
|
|||
|
1 / 1 / 0
Регистрация: 31.03.2019
Сообщений: 144
|
|
| 28.06.2019, 09:44 [ТС] | |
|
Спасибо за ссылки.
См. ниже, правильно ли я заполняю "шпаргалку": >> 1) Локальные переменные функции ? Мусор при старте >>2) Статические переменные в функции, или в файле ? Нули при старте >>3) Поля класса ? Мусор >>4) Статические Поля класса ? Нули >>5) Глобальные переменные ? Нули >>6) Структуры/Массивы как переменные файла ? Нули т.к. глобальные >>7) Структуры/Массивы как поля класса ? Мусор ... ? >>8) Структуры/Массивы как локальные переменные функции ? Мусор >>9) Память выделенная через new ? Мусор >>11) ... что еще записать в шпаргалку ?[/quote] Инициализация поля типа Класс с конструктором ... ? А в С++ у Структур бывает конструктор? еще, не уверен в п.7
0
|
|
|
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 242
|
|||||||||||||
| 28.06.2019, 09:48 | |||||||||||||
1
|
|||||||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 28.06.2019, 09:51 | |||
Сообщение было отмечено Artem_Pv как решение
РешениеВообще конечно дело ваше, но лично я считаю подобные шпаргалки большим злом. Вы забиваете себе голову частностями (при этом со временем о том, что это частности, забудется и вы начнете делать ошибки), вместо того, чтобы уяснить общий принцип и делать на его основе выводы в той или иной ситуации. Например у вас написано, что локальные переменные содержат мусор, это верно, но только в случае, если это переменные базовых типов или переменные класса, у которого не был описан конструктор с инициализацией полей. Либо явного конструктора не было, но все поля класса описываются типами, у которых он есть. Пытаясь записать это все в шапргалку, вы просто увеличите ее до неприличных размеров, а если не запишете - она не будет отражать реальность, что в итоге приведет к вашим ошибкам.
1
|
|||
|
1 / 1 / 0
Регистрация: 31.03.2019
Сообщений: 144
|
||||||
| 28.06.2019, 09:56 [ТС] | ||||||
Т.к. в современные диалекты(++17) я пока не готов вникать. Жаль, я надеялся, что с инициализацией есть простое правило
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 28.06.2019, 10:00 | ||
Сообщение было отмечено Artem_Pv как решение
Решение
1
|
||
|
1 / 1 / 0
Регистрация: 31.03.2019
Сообщений: 144
|
||||||
| 28.06.2019, 10:12 [ТС] | ||||||
|
Всем спасибо, последний вопрос.
Как себя ведет локальная(не статическая) переменная(в функции) если в объявлении ее инициализировали:
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|
| 28.06.2019, 10:19 | |
|
Artem_Pv, эта переменная локальная, она уничтожается по выходу из области видимости функции. Т.е. при новом вызове она снова будет создана и проинициализирована, затем инкрементирована.
1
|
|
|
1 / 1 / 0
Регистрация: 31.03.2019
Сообщений: 144
|
||
| 28.06.2019, 10:49 [ТС] | ||
|
https://en.cppreference.com/w/... ialization за наводку, спасибо. P.S. <Value/Zero/Default>-initialization ; в C++ все по полочкам разложено. Wow ...
0
|
||
| 28.06.2019, 10:49 | |
|
Помогаю со студенческими работами здесь
13
Как мне сделать так, чтобы данный текстовый файл был открыт один раз при запуске программы и закрыт при закрытии программы? Обнуление переменных при запуске При запуске выдает какие-то иероглифы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|