|
1 / 1 / 0
Регистрация: 02.08.2012
Сообщений: 15
|
|||||||||||
Отличие объявления, определения и инициализации26.06.2013, 23:57. Показов 22366. Ответов 42
Метки нет (Все метки)
Здравствуйте, товарищи.
Читаю тут книжицу по C++, учусь потихоньку. И возник у меня вопрос нерядового характера: в чём фундаментальное отличие объявления, определения и инициализации? В книге всё намешано, ничего не понятненько. Однако усёк, что они говаривают, будто такая строка:
И как-то это связано с созданием экземпляров классов. А ещё пишут, что есть инициализация прямая и инициализация копии. А потом вот это кажут:
Что-то я видно не секу истинной сути. Помогите словцом мудрым.
0
|
|||||||||||
| 26.06.2013, 23:57 | |
|
Ответы с готовыми решениями:
42
Правила объявления инициализации В чём отличие разных способов объявления переменных?
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||
| 27.06.2013, 13:14 | |||
|
0
|
|||
|
Неэпический
|
|||||||||||
| 27.06.2013, 13:50 | |||||||||||
|
@alsav22, Ну на счет механизмов это я просто так выразился, корректнее, наверное, сказать по другому:
![]() второй случай - инициализация с точки зрения определения инициализации и присвоение с точки зрения языка. С классами же все совершенно очевидно, ибо при создании будет вызван конструктор, который и должен инициализировать объект, а при присвоении будет вызван оператор присвоения.
0
|
|||||||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||||
| 27.06.2013, 14:05 | ||||||
|
Я прошу прощения если не в тему, но нельзя ли перефразировать так:
![]()
0
|
||||||
|
Неэпический
|
|
| 27.06.2013, 14:10 | |
|
@SatanaXIII, Как, правило, нельзя, ибо нет никакой инициализации - просто выделение места с тем значением, которое будет в памяти валяться
то есть создание без задания какого-либо значения, имхо.
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 27.06.2013, 14:26 | |
|
0
|
|
|
Ушел с форума
|
|||||||
| 27.06.2013, 14:45 | |||||||
|
Для объектов со статическим временем жизни (static storage duration) выполняется так называемая инициализация нулем (zero-initialization).
0
|
|||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||
| 27.06.2013, 14:51 | |||||||
0
|
|||||||
|
Неэпический
|
|
| 27.06.2013, 14:57 | |
|
@alsav22, Конструктор предназначен для инициализации объекта. Он вызван, значит объект можно назвать инициализированным, а то, что программист делает в конструкторе всем наплевать
главное, чтобы порносайты при этом не открывались
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 27.06.2013, 14:58 | ||
|
0
|
||
|
Ушел с форума
|
|
| 27.06.2013, 15:26 | |
|
0
|
|
|
Комп_Оратор)
|
||
| 27.06.2013, 16:23 | ||
![]() Вообще, для новичка такие вещи как объявление, определение и инициализация, - предварительное объявление, как и многое другое. Нельзя язык учить как букварь, многое можно понять значительно позже ознакомления. @_Cherep_, объявление это информация для компилятора для формирования кода. С местом объявления связаны: время жизни, видимости, действия переменной, например. Определение - информация компилятору и редактору связей для конкретизации значения или адреса. Инициализация - совмещение, того и другого. Тема большая. Вам пока достаточно понять, что константы и ссылки, невозможно объявить без инициализации. А уж как работают конструктора при инициализации или присваивании это лучше читать и спрашивать конкретно.
0
|
||
|
Супер-модератор
|
||||||||||||||||
| 27.06.2013, 16:47 | ||||||||||||||||
|
В C++ есть такие понятия:
1) объявление (декларация) 2) определение (дефиниция) Пояснить что есть что, проще всего на примере функций:
Этот код не скомпилируется, т.к. в момент компиляции F1 компилятор ничего не знает про F2. Чтобы код скомпилировался, функцию F2 нужно предварительно объявить (декларировать):
Ну, а инициализация - это присвоение объекту или переменной некоего значения в момент создания.
1
|
||||||||||||||||
|
Комп_Оратор)
|
|||||||
| 27.06.2013, 17:43 | |||||||
|
Новичку это ненужно. :
0
|
|||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||
| 27.06.2013, 17:49 | |||||||
1
|
|||||||
|
Комп_Оратор)
|
|||
| 27.06.2013, 18:01 | |||
|
Конечно если слить такие классы в один, то такой вопрос обходится, а если не нет? У меня маловато опыта, чтобы сказать определённо. ![]() Добавлено через 4 минуты
0
|
|||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 27.06.2013, 18:03 | ||
|
0
|
||
|
Комп_Оратор)
|
|
| 27.06.2013, 18:39 | |
|
0
|
|
| 27.06.2013, 18:39 | |
|
Объявления и определения структур Циклы for. Проблема объявления/инициализации
Когда выделяется память под переменные - во время объявления или инициализации Архитектура правильного определения и объявления класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|