|
59 / 49 / 14
Регистрация: 23.02.2016
Сообщений: 433
|
||||||
Прямая инициализация в C++ и функция-конструктор в Javascript09.04.2020, 02:01. Показов 7322. Ответов 76
Метки нет (Все метки)
Вопрос собственно следующий, а не является ли прямая инициализация обычным вызовом функции как это сделано при создании объекта с помощью функции-конструктора в Javascript ? Просто сам синтаксис
p.s. https://learn.javascript.ru/fu... onstructor p.p.s. https://learn.javascript.ru/cl... a-funktsii
0
|
||||||
| 09.04.2020, 02:01 | |
|
Ответы с готовыми решениями:
76
Конструктор копий, инициализация объектов Инициализация массива через конструктор
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 09.04.2020, 19:58 | |||
|
0
|
|||
| 09.04.2020, 19:59 | |
|
Не по теме: TheCalligrapher, эти господа так просто не сдадутся. Сейчас будет сказ про уток, кряканье и unsafe c++ и еще много интересного. Ждем.
0
|
|
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 09.04.2020, 20:03 | ||
|
А то о чем вы говорите это совсем из другой оперетты. Это из той серии что внутри одного фрейма стека место под разные объекты может разделяться по времени их жизни а не по адресу.
0
|
||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||
| 09.04.2020, 20:17 | |||
|
Никто вам не запрещает придумывать свои невероятные "теории" на тему того, как и что работает в С++, с хоть привлечением басен в стиле "убрали, опомнились", хоть зеленых человечков. Пожалуйста, на здоровье. Упражнение для ума, если вам это нравится. Но если вы будете пытаться навязывать эти ваши доморощенные сумасшедшие "теории" здесь, в качестве объяснения того, как и что устроено в С++, вас всякий раз будут мгновенно ставить на место. Добавлено через 7 минут В языке С++ неинициализированная переменная содержит indeterminate value, доступ к которому в общем случае приводит к неопределенному поведению. В частных случаях, когда доступ не приводит к неопределенному поведению ( unsigned char переменные), значение не является стабильным, т.е. последовательные чтения одной и той же переменной могут читать разные значения.
0
|
|||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 09.04.2020, 20:27 | |||
|
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||
| 09.04.2020, 20:29 | ||||||||||||||
|
речь не о различии между инициализированными и не инициализированными объектами. речь о том, что: нельзя проинициализировать объект наполовину. однако, важно понимать: проинициализированный объект - это объект, чъё время жизни началось (готов к работе) а вовсе не тот объект, для которого каждый без исключения байт был чем то записан. и если в каком то частном случае тебя устраивает, что память может содержать мусор - почему нет? объект от этого "наполовину не проинициализированным" не делается. пример:
0
|
||||||||||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||||||||
| 09.04.2020, 20:51 | ||||||||
|
Однако любой мало-мальски соображающий программист может сам понять, зачем это нужно, и привести жизнеспособный пример: когда две переменные имеют пересекающиеся области видимости, но не пересекающиеся области "детерминированного значения"
a и b имеют непересекающиеся value-lifetime, т.е. не требуют отдельных ячеек в хранилище. Например, он может назначить им один и тот же процессорный регистр. В результате чтение значения b в точках 2 и 4 будет на самом деле видеть значение a. То есть значение b будет "магически" меняться.Другими словами, вы были близки к истине "при разделении памяти по времени жизни объектов." Разделение памяти в языка С и С+ на само деле делается не "по времени жизни объектов", как вы наивно полагали, а по времени детерминированности их значений, т.е. по т.наз. value-lifetime. Стандарт языка специально построен так, чтобы позволить компиляторам делать разделение памяти по value-lifetime. И свойства indeterminate value, которые я описал выше, ориентированы именно на это. В DR#451 для С, посвященному именно нестабильности indeterminate values, подробно объяснено еще масса нюансов на эту тему: http://www.open-std.org/Jtc1/s... dr_451.htm
1
|
||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 09.04.2020, 21:03 | ||||
|
Люди в коммитете вообще то более менее адекватные и для того чтобы было такое определение должна быть причина. А причина может быть только одна - разделение памяти объектов по времени жизни. Добавлено через 1 минуту Добавлено через 7 минут Т.е. вообще строго говоря объект существует от начала работы конструктора и до конца работы деструктора.Даже если какой то из этих граждан тривиальный. А соответсвенно и конструктор и деструктор концептуально есть абсолютно у всего. И то что они тривиальные абсолютно ничего в этом плане не меняет. Это банально интерфейс работы с объектами. Либо он един для всего либо метапрограммирование можно отправлять на свалку истории. Вообще складывается впечатление что вы абсолютно не понимаете о чем вообще идет речь. И по всей видимости такие же непонятки и при заучивании стандарта на каждом шагу возникают.
0
|
||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||||||
| 09.04.2020, 21:09 | ||||||
|
Мне кажется, что вы недостаточно плотно работаете с моими постами. Сколько раз вы законспектировали мой предыдущий пост? Без конспектирования толка не будет. И да, кстати, понятие неопределенного поведения в С и С++ включает в себя и "потоки инопланетного происхождения, бегающие по памяти". Привыкайте.
0
|
||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 09.04.2020, 21:19 | |||||
|
Добавлено через 4 минуты Добавлено через 2 минуты
0
|
|||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||||
| 09.04.2020, 21:24 | ||||
|
Я уже привел вам очевидный контрпример. Но, я вижу, что для вас это сложновато, если вы продолжаете дылдонить одно и тоже. И ссылку на DR#451 с объяснениями комитета по стандартизации С давали, и C++ DR (http://www.open-std.org/jtc1/s... n3714.html) ясно говорит "The value may be different each time the lvalue-to-rvalue conversion is applied to the object.", и пример привели, понятие неопределенного поведения вбиваем снова и снова в эти бошки... Но все как об стенку горох...
0
|
||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 09.04.2020, 21:25 | ||
|
0
|
||
|
Неэпический
|
||||||||
| 09.04.2020, 21:27 | ||||||||
0
|
||||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||||||||||
| 09.04.2020, 21:46 | ||||||||||
|
---
Видя, что значение f неинициализировано, он просто в конце main генерирует tail call к printf через jmp. В результате в качестве возвращаемого значения main подставляется возвращаемого значение printf. То есть печатается одно "значение" f, а из main возвращается совсем другое "значение" f )))
1
|
||||||||||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 09.04.2020, 21:46 | ||
|
1>------ Build started: Project: ConsoleApplication7, Configuration: Debug Win32 ------ 1>ConsoleApplication7.cpp 1>C:\Users\fulcr\source\repos\ConsoleApp lication7\ConsoleApplication7.cpp(19): error C4700: uninitialized local variable 'b' used 1>Done building project "ConsoleApplication7.vcxproj" -- FAILED. При этом какое отношение отсутсвие автовызова коструктора для тривиальных типов имеет отношение к его концептуальному наличию?
0
|
||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||||
| 09.04.2020, 21:52 | ||||
unsigned char)Как я уже сказа выше, изобретать свои доморощенные теории вам никто не запрещает. Но навязывать их кому-то под видом канона вам никто не даст.
0
|
||||
|
Неэпический
|
||||||||||||||
| 09.04.2020, 22:02 | ||||||||||||||
jmp.
0
|
||||||||||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||
| 09.04.2020, 22:03 | ||
|
То есть возвращаемое значение - это не последний байт "мусора", а именно количество символов, выведенное printf.
0
|
||
|
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 09.04.2020, 22:04 | |||||||
0
|
|||||||
|
Неэпический
|
||
| 09.04.2020, 22:09 | ||
|
TheCalligrapher, да, да. Я протупил и как-то умудрился пропустить первое предложение после вашего кода. Не серчайте.
![]() Добавлено через 4 минуты ![]() Выражения Type() - это Explicit type conversion (functional notation). В твоем случае, это приводит к direct-initialization с опущенным expression-list. Ну а чтобы понять что там будет, читай правила прямой инициализации.P.S. Это я конкретно о T(), а не о T a = ....
0
|
||
| 09.04.2020, 22:09 | |
|
Конструктор и Деструктор (инициализация массивов)
Инициализация массива через конструктор. Вопрос.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|