Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для VoltDeMar
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020

Как инициализировать переменные?

26.08.2015, 16:11. Показов 2525. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Где можно полно осведомиться о том как инициализируются переменные в C++ для каждого типа?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.08.2015, 16:11
Ответы с готовыми решениями:

Не могу инициализировать переменные класса
Доброго времени суток, проблема такая: есть функция getscore (строки 92-106), всё вроде работает, ошибок нет, но в массиве score всегда...

Где инициализировать переменные класса?
Почему я не могу инициализировать переменную непосредственно в описании класса? class Primer { publuc: Metod1() {...}; ...

Как инициализировать компоненты в переменные в C#
Добрый день! Как разобраться. Нужно написать довольно простую программу. Дана форма, на ней 2 combobox, 2 текстовых поля, 3 radiobutton и...

4
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
26.08.2015, 16:19
VoltDeMar, Конкретнее. В каком случае?
C++
1
T v = T();
Инициализация переменной любого типа нулем (для класса с конструктором - вызов конструктора, для POD типов - ноль).
1
 Аватар для VoltDeMar
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
26.08.2015, 16:22  [ТС]
Не 4 основных типа, а все возможные типы в C++, включая указатели, массивы и т.д.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
26.08.2015, 16:30
VoltDeMar, Курите стандарт параграф 8.5.
Ну или если вкратце:
An object whose initializer is an empty set of parentheses, i.e., (), shall be value-initialized.

To value-initialize an object of type T means:
if T is a (possibly cv-qualified) class type (Clause 9) with either no default constructor (12.1) or a
default constructor that is user-provided or deleted, then the object is default-initialized;
if T is a (possibly cv-qualified) class type without a user-provided or deleted default constructor, then
the object is zero-initialized and the semantic constraints for default-initialization are checked, and if
T has a non-trivial default constructor, the object is default-initialized;
if T is an array type, then each element is value-initialized;
otherwise, the object is zero-initialized.

To zero-initialize an object or reference of type T means:
(6.1) — if T is a scalar type (3.9), the object is initialized to the value obtained by converting the integer literal
0 (zero) to T; 104
(6.2) — if T is a (possibly cv-qualified) non-union class type, each non-static data member and each base-class
subobject is zero-initialized and padding is initialized to zero bits;
(6.3) — if T is a (possibly cv-qualified) union type, the object’s first non-static named data member is zero-
initialized and padding is initialized to zero bits;
(6.4) — if T is an array type, each element is zero-initialized;
(6.5) — if T is a reference type, no initialization is performed.

To default-initialize an object of type T means:
(7.1) — If T is a (possibly cv-qualified) class type (Clause 9), constructors are considered. The applicable
constructors are enumerated (13.3.1.3), and the best one for the initializer () is chosen through
overload resolution (13.3). The constructor thus selected is called, with an empty argument list, to
initialize the object.
(7.2) — If T is an array type, each element is default-initialized.
(7.3) — Otherwise, no initialization is performed.
Таким образом инициализация вида
C++
1
T obj = T();
всегда инициализирует переменную.
1
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
26.08.2015, 18:37
Цитата Сообщение от ForEveR Посмотреть сообщение
всегда инициализирует переменную
Только если T - это не массив.

Тут можно вспомнить uniform initialization syntax из С++11:
C++
1
T obj{};
Который удовлетворяет определению "всегда".
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.08.2015, 18:37
Помогаю со студенческими работами здесь

Как создавать и инициализировать глобальные переменные?
Hi guys and ladys. Суть вопроса в следующем, как создавать глобальные переменные и тут же их инициализировать? Глобальную переменную мы...

Как передать в функцию переменные и там их инициализировать?
Как передать в функцию переменные и там их инициализировать при условии что передаваемые значения заранее не известны? Например ...

Как при создании экземпляра класса инициализировать переменные вложенного класса
Здравствуйте. Подскажите пожалуйста как при создании екземпляра класа инициализировать переменные вложеного класа. Добавлено через 22...

в PHP можно не инициализировать переменные?
Что-то потерялся, не пойму почему так:echo $q = "SELECT * FROM ?n WHERE ?n = 'on' ORDER BY ?n "; выводит просто S $q=array(); echo...

Как инициализировать новую форму, с такими же свойствами как и родительская?
Здравствуйте, подскажите пожалуйста, как создать новую форму, с такими же кнопками и с таким же кодом как и в форме создающей эту форму? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 из исходников с помощью 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 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru