|
1 / 1 / 0
Регистрация: 22.03.2020
Сообщений: 131
|
|
ДЛЯ чего используется this-> в конструкторе29.05.2020, 13:45. Показов 6085. Ответов 46
Метки нет (Все метки)
0
|
|
| 29.05.2020, 13:45 | |
|
Ответы с готовыми решениями:
46
Для чего используется out Для чего используется eventfd
|
|
Комп_Оратор)
|
||
| 29.05.2020, 15:52 | ||
|
1
|
||
|
"C with Classes"
|
||
| 29.05.2020, 16:00 | ||
|
The keyword this names a pointer to the object for which a non-static member function is invoked or a non-static data member’s initializer is evaluated.
0
|
||
|
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
|
||||||
| 29.05.2020, 16:01 | ||||||
|
zayats80888, здесь никому не нужен твой высер, акстись. Этот пример не является практически используемым, ибо в этом просто нет смысла, он существует лишь для того, чтобы доказать эквивалентность, показать, что из себя представляет объект класса. Но раз уж речь зашла о неопределённом поведении, то давай, докажи, что это действительно так, пришли мне ссылку на онлайн-компилятор, который не выведет установленное через указатель значение из-за твоего strict-aliasing. Я уж не буду говорить про существование volatile и ассемблерных вставок, позволяющих обойти все твои ограничения, правила, стандарты и прочее. Твои слова не значат ровным счётом ничего, пока ты их не докажешь, так что давай, дерзай. И насколько же нужно быть очевидным, чтобы добавить свои важнецкие замечания к коду, ломающего ключевой механизм языка, на что же следует рассчитывать, применяя его, на то, что это позволительно стандартами? Увы.
0
|
||||||
|
"C with Classes"
|
|
| 29.05.2020, 16:03 | |
|
FaceProgrammist, и еще http://eel.is/c++draft/class.this
0
|
|
|
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
|
|
| 29.05.2020, 16:05 | |
|
И я не спорю с тем, что это действительно UB, ибо, как я сказал выше, обход инкапсуляции не может быть частью стандартов.
Но всё равно найди мне компилятор, который сделает иначе, чтобы доказать, что в практических условиях результат не всегда один и тот же.
0
|
|
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
| 29.05.2020, 16:14 | |
|
0
|
|
|
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
|
||||||
| 29.05.2020, 16:16 | ||||||
Комментарий к коду - если вывести значение this из функции объекта а1, то его значение совпадает с адресом а1, следовательно this указывает на объект а1, который вызывает функцию, конструктор, деструктор и т.д.
0
|
||||||
|
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
|
|
| 29.05.2020, 16:17 | |
|
Здравый смысл подсказывает.
0
|
|
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
||
| 29.05.2020, 16:20 | ||
|
Как часто "здравый смысл" тебе о чём-то подсказывает? "здравый смысл" только подсказывает, или ты его ещё видишь?
1
|
||
|
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
|
|
| 29.05.2020, 16:21 | |
|
А что, ты можешь доказать обратное? Или кроме слов ничего?
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||||||||
| 29.05.2020, 18:53 | ||||||||
virtual к функции get в вашем примере:
Онлайн пример с диагностикой в GCC: https://rextester.com/GYW49209 Онлайн пример с диагностикой в Clang: https://rextester.com/IGKYX16507 Онлайн пример для VC++: https://rextester.com/IIMX59211 Ссылки на стандарт даст кто-нибудь еще.
0
|
||||||||
|
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
|
||||||
| 29.05.2020, 19:19 | ||||||
|
Во-первых, вы изменили код, что делать было нельзя, во-вторых, делать метод виртуальным, не имея производных классов - глупо, в третьих, результат другой лишь из-за того, что первым членом полиморфных классов является указатель на таблицу виртуальных методов. Изменив смещение, вернётся прежний результат.
Добавлено через 4 минуты
... Добавлено через 5 минут И да, у этого примера чисто академический характер. Я не призываю к тому, чтобы использовать это.
0
|
||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||
| 29.05.2020, 19:25 | |||
final, то не существует абсолютно никакого способа сказать, если ли у него в программе производные классы или нет. То есть даже такого сочетания слов - "не имея производных классов" - тут никак появиться не может.
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||||||
| 29.05.2020, 19:33 | ||||||
|
Добавлено через 6 минут Еще раз повторю, что раскрывать вопрос с точки зрения размещения объектов в памяти можно, и лично я не вижу в этом ничего плохого. Но замечания вам делают совершенно справедливо, потому что вы очень много недоговариваете. +2 вы мне предлагаете?
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 29.05.2020, 19:52 | |
|
0
|
|
|
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
|
|||||
| 29.05.2020, 20:11 | |||||
|
Но раз вы считаете это чистой случайностью (в десятках онлайн-компиляторах), то пожалуйста, докажите, что результат может быть другим, без изменения кода, ибо иначе, ваши слова не имеют никакого значения. Или вы только говорить про UB и можете? UB, UB, UB. Добавлено через 5 минут Случайность не может быть абсолютной, поэтому, если вы правы, должен быть компилятор, который не выведет 666 без изменения кода. Добавлено через 26 секунд А иначе, ваши разговоры - пустая болтовня ни о чём.
0
|
|||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||
| 29.05.2020, 20:38 | |||
final, то вы не знаете и никак не можете знать, есть ли у него наследники и переопределяется ли где-нибудь этот виртуальный метод. Это вопрос находится за пределами вашего контроля.А ваши "десятки онлайн-компиляторов" (смех в зале) - это не более чем детские эксперименты с тараканами. К чему это здесь, и почему вы решили что эти левые эксперименты имеют какое-то значение - совершенно не ясно.
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 29.05.2020, 20:54 | ||
|
порядок объявления методов не оказывает на содержимое объектов никакого влияния. поэтому, он он никак не влияет на то, что именно может находиться по адресу this
0
|
||
|
"C with Classes"
|
||
| 29.05.2020, 20:57 | ||
|
Mightsoul,
короче суть такая, this не обязан указывать на первое поле объекта, но обычно он это делает, а все остальное как ты говоришь
0
|
||
|
El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
|
|||||||
| 29.05.2020, 21:13 | |||||||
|
Добавлено через 8 минут Добавлено через 5 минут Я прислал пример, чтобы объяснить значение указателя this. Из всех, только DrOffset выразил конструктивную критику по существу, у остальных, как будто бы, фантомные войны со мной.
0
|
|||||||
| 29.05.2020, 21:13 | |
|
Для чего используется Distinct() Для чего используется DLL?
Для чего используется директива using Для чего используется Expression Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция 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
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|