|
|
|||||||||||
[C++] Взятие адреса конструктора. Физическое время существование объекта.16.02.2012, 15:40. Показов 16257. Ответов 69
Метки нет (Все метки)
1. конструктор.
поэтому обращаюсь к тебе Evg как к очень опытному специалисту знающему "нутро". вот мы сделали бинарник. в нем программа, в ней создаются объекты классов. мне сложно судить где буду лежать эти объекты, предположу что в .text если мое предположение верно, то после отображения в память, можно будет обратится к конструктору зная его адрес, поскольку никакие высокоуровневые вещи не будут мешать. вопрос 2
0
|
|||||||||||
| 16.02.2012, 15:40 | |
|
Ответы с готовыми решениями:
69
Взятие адреса у константной переменной при объявлении |
|
|
|
| 16.02.2012, 20:13 [ТС] | |
|
0
|
|
|
Заблокирован
|
|
| 16.02.2012, 20:14 | |
|
0
|
|
|
|
|
| 16.02.2012, 20:15 [ТС] | |
|
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||
| 16.02.2012, 20:23 | ||
|
память, выделенная из кучи под объект, или создание объекта на стеке не в счет? AzaKendler, что-то я не очень понимаю, что вы хотите выяснить?
0
|
||
|
|
||
| 16.02.2012, 20:29 [ТС] | ||
|
retmas, речь идет об объекте класса на стеке и взятия его адреса.
о том что собой будет представлять этот объект в бинарном файле и в итоге в памяти после загрузки бинарника. о том что если мы получаем указатель на нулевой байт объекта, то это видимо указатель на секцию с данными в которой должна еще содержаться информация о смещениях на "методы" в секции кода. все это в итоге приведет нас к тому что мы двигаясь по секции с данными можем найти смещение на конструктор. подтвердите или опровергните пожалуйтса Добавлено через 1 минуту
0
|
||
|
Заблокирован
|
||
| 16.02.2012, 20:30 | ||
|
В секции данных лежат указивки загрузчику файла, чем заполнить статическую область памяти программы перед её запуском. Есть ещё секция кода - там боевой код программы, и ещё всякие разные секции, с которыми ты можешь ознакомится мало мало погуглив, например "формат PE" Получая адрес объекта, ты получаешь адрес ячейки памяти, с которой начинаются данные этого объекта.
0
|
||
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
| 16.02.2012, 20:32 | |
|
0
|
|
|
|
|||
| 16.02.2012, 20:35 [ТС] | |||
|
Bers, ладно. я читал про пе, потому и появились вопросы. думал ты как чел с большой практикой расскажешь. но тебе скорее всего это просто неинтересно.
тогда и прикрыть можно тему эту. Добавлено через 23 секунды Добавлено через 1 минуту ______________ спасибо всем за потраченное время и ответы
0
|
|||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||
| 16.02.2012, 20:52 | ||
|
0
|
||
|
|
||
| 16.02.2012, 21:10 [ТС] | ||
|
а вот вызываем мы метод класса - это слегка другой процесс не находишь?
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 16.02.2012, 21:14 | |
|
AzaKendler, не-а, не нахожу. Вызов a.foo() разворачивается в foo(&a). this и есть тот указатель (являющийся неявным параметром любого нестатического метода класса), который содержит адрес вызывающего объекта.
1
|
|
|
|
||||||||||||||||||||||||||
| 16.02.2012, 21:14 | ||||||||||||||||||||||||||
|
AzaKendler, уж не раз отсылал тебя к своей статье, почему-то не хочешь читать, хотя все ответы на твои вопросы там есть
Если теперь откомпилировать программу на Си++ и посмотреть на код:
2
|
||||||||||||||||||||||||||
|
|
|||||||
| 16.02.2012, 21:52 [ТС] | |||||||
хорошо. видимо пример не очень. давай возьмем объект с временем жизни подольше
0
|
|||||||
|
|
||||
| 16.02.2012, 22:02 | ||||
|
Ау!! Ты вообще читаешь, что тебе пишут? Конструктор с точки зрения кода это САМАЯ ОБЫЧНАЯ ФУНКЦИЯ.
0
|
||||
|
|
|
| 16.02.2012, 22:05 [ТС] | |
|
Evg, ну это понятно. тогда его вызов извне ограничен только в контексте языка с++ и концепции классов я прав?
и теоретически мы можем вызвать конструктор, поскольку он является обычной функцией найдя его адрес в загруженном в память файле. верно? я имею ввиду следующее - загрузили файл, нашли адрес его модуля, допустим мы знаем смещение до такой функции как конструктор и найдя ее адрес в памяти обращаемся к ней минуя высокоуровневые конструкции
0
|
|
|
|
|||||||
| 16.02.2012, 22:11 | |||||||
1
|
|||||||
|
|
|
| 16.02.2012, 22:14 [ТС] | |
|
Evg, спасибо. и последний вопрос.
0
|
|
|
Заблокирован
|
|
| 16.02.2012, 22:17 | |
|
Evg, как на с++ можно заполучить адрес конструктора, и запустить его по "указателю" ?
0
|
|
|
|
||
| 16.02.2012, 22:25 [ТС] | ||
|
0
|
||
| 16.02.2012, 22:25 | |
|
Зачем взятие адреса нулевого элемента массива, если сама переменная и так его содержит?
Проверка email адреса на существование Проверка на существование proxy адреса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
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.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|