|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
||||||
Применение указателей22.04.2013, 02:50. Показов 3043. Ответов 21
Метки нет (Все метки)
Доброй ночи. Встретил вот такое выражение в книге и не могу понять что к чему:
Disntace - класс. Операция new выделяет место равное объекту класса Distance и возвращает указатель на блок памяти, который выделили мы у операционной системы. Не могу понять к чему там ссылка (знак амперсанда ) и к чему там операция разыменования. Каким образом оно работает? Объясните пожалуйста саму схему данного выражения. Обязательно плюсану на спасибо. Благодарю.
0
|
||||||
| 22.04.2013, 02:50 | |
|
Ответы с готовыми решениями:
21
Применение указателей Применение и удаление указателей Применение указателей, структур и объединений |
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 22.04.2013, 03:02 | |
|
Обычное разыменовывание указателя, new выделяет память и возвращает указатель, далее он разыменовывается и получается ссылка на объект Distance, а т.к. -> используется заместо (*...). тут он уже не требуется.
2
|
|
|
Комп_Оратор)
|
||||||
| 22.04.2013, 04:07 | ||||||
|
IvanInanovich, разыменуя указатель можно получить значение на которое можно сослаться. Однако памятуя, что объект создан динамически его нужно будет потом уничтожить. Так например:
1
|
||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 22.04.2013, 09:16 | ||
|
2
|
||
|
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
|
||||||
| 22.04.2013, 09:28 | ||||||
|
IGPIGP, так тоже сработает
1
|
||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 22.04.2013, 10:08 | |
|
Кудаив, Вы главное не спутайте, что & применяется к dist, а не к delete. Хоть такая запись как у Вас тоже будет синтаксически разобрана корректно.
По теме: приведение указателя к ссылке лишь для того, чтобы вместо -> писать . довольно глупая затея.
1
|
|
|
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
|
|
| 22.04.2013, 10:11 | |
|
Tulosba, да я не путаю
привычка так писать
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
| 22.04.2013, 11:04 | ||||||
|
Кудаив, как-ибудь напишете
0
|
||||||
|
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
|
|
| 22.04.2013, 11:15 | |
|
Tulosba, о нет - только не побитовое и
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 22.04.2013, 11:23 | |
|
Кудаив, с чего Вы взяли, что это побитовое И? Это ссылка с именем b на объект типа a
0
|
|
|
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
|
|
| 22.04.2013, 11:41 | |
|
Tulosba, чтоб понять что это контекста маловато))
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 22.04.2013, 11:47 | ||
|
0
|
||
|
Комп_Оратор)
|
|||
| 22.04.2013, 12:51 | |||
Но понятнее всё же через указатель. но это вряд ли хорошо читать. А потом ещё использовать результат... Так что может кому-то понравится и так как предложено. Мне лично это не нравится.
0
|
|||
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
| 22.04.2013, 14:13 [ТС] | |
|
Благодарю ребят за разъяснения.
Хотелось бы уточнить один момент. Перед инициализации ссылки мы разыминовываем указатель. Для чего это делается? Разыминованый указатель имеет иной адрес? Т.е. есть адрес объекта номер 1, и есть адрес значения объекта номер 1 (и в данной ситуации мы просто присваиваем ссылку на значение объекта номер 1) или как?
0
|
|
|
Комп_Оратор)
|
||||||||||||
| 22.04.2013, 14:19 | ||||||||||||
1
|
||||||||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||
| 22.04.2013, 14:34 | |||||||
0
|
|||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 22.04.2013, 14:37 | |
|
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 22.04.2013, 15:13 | |
|
0
|
|
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
| 22.04.2013, 17:02 [ТС] | |
|
Дело тут не в принципиальности)).
До этого, в книге встречались только передачи по ссылке аргументов в функции. А тут определение идет и инициализация не в сигнатуре функции. В добавок объясняется как мне показалось не очень понятно. Вот и пытаюсь понять, как оно работает. В книге пишется что на практике такое редко используется. Ребят, еще раз мы создаем ссылку, в которую ложем разыминованый указатель т.е. прямой доступ к значению переменной? Ссылка есть ссылка, указатель есть указатель. Не могу понять каким образом ссылка видит и сохраняет в себе разыминованый указатель. Т.е. если бы указатель сохранял ссылку в себе - понятно. А наоборот в добавок операция розыминования - до меня не доходит. Возможно глупая ситуация, но все же.. И еще раз благодарю что разъясняите.
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 22.04.2013, 17:12 | |
|
IvanInanovich, ссылка это всего лишь альтернативное имя переменной. Но в данном случае, переменная не имеет имени, т.к. создается динамически и сразу же разыменовывается.
P.S. Что у Вас с русским языком, IvanInanovich ?
0
|
|
| 22.04.2013, 17:12 | |
|
Помогаю со студенческими работами здесь
20
Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей? Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение/ Перевод
Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period.
Это. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|