|
-7 / 2 / 1
Регистрация: 10.04.2016
Сообщений: 53
|
|
Используются ли на практике указатели на указатели объектов?09.07.2016, 08:24. Показов 3424. Ответов 67
Метки нет (Все метки)
Имеются ввиду указатели именно на объекты, а не динамические массивы.
Например такой: Object** obj; А как насчёт такого: Object*** obj; Если такие приёмы используются, приведите пример, где это целесообразно. Какие аналоги применяются в таких языках как C#?
0
|
|
| 09.07.2016, 08:24 | |
|
Ответы с готовыми решениями:
67
Как на практике используются указатели на члены класса Указатели от теории к практике Указатели и указатели на указатели, а также типы данных |
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 09.07.2016, 09:01 | ||
|
0
|
||
|
Комп_Оратор)
|
|
| 09.07.2016, 09:27 | |
|
O_Q, поскольку значение по указателю * в динамической памяти может быть реализованно как массив, то ** это массив массивов, т.е 2d массив. Так почему не быть массиву массивов массивов - 3d массиву?
0
|
|
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 09.07.2016, 09:30 | |
Сообщение было отмечено vxg как решение
Решение
O_Q, указатель на указатель может быть передан в качестве аргумента в функцию которая собирается вернуть в качестве результата указатель на объект и собирается это сделать через аргумент. Тройной звездочке с ходу задачку не придумаю
2
|
|
|
Комп_Оратор)
|
|||
| 09.07.2016, 09:37 | |||
|
Хотя передача ссылки на указатель проще: T **& ptr_to_T ![]() ps
0
|
|||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 09.07.2016, 09:45 | |
|
IGPIGP, ссылки не есть хорошо это раз, а два это то что тс хочет пример использования без массивов - с массивами все просто - достаточно лишь посчитать звездочки и объявить что это массив такой вот размерности
1
|
|
| 09.07.2016, 09:47 | |
Сообщение было отмечено vxg как решение
Решение
O_Q, например в сортировке массива указателей...
Массив указателей
2
|
|
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 09.07.2016, 09:55 | |
|
IGPIGP, потому что если в функцию передается что-то что может быть в ней изменено лучше дать об этом знать всему свету передавая в нее указатель. исключением могут быть лишь функции в которых участвуют потоки (там так исторически заложено) или, может быть, перегрузка некоторых операторов в которой без ссылки получится адское уродство
0
|
|
|
-7 / 2 / 1
Регистрация: 10.04.2016
Сообщений: 53
|
||
| 09.07.2016, 10:22 [ТС] | ||
|
Спасибо за ответы.
Может вы работали с языками со сборкой мусора, там такие указатели не доступны в принципе. Как в этом случае можно провести аналогию в решении подобных задач? Если нужно больше конкретики, поставлю философский вопрос так: если запретить многоуровневые указатели на (!) объекты в С++, какие трудности возникнут и будут ли они критичны. Как без них обходятся Java-подобные языки и какие трудности при этом возникают?
0
|
||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
| 09.07.2016, 10:23 | |
|
В современном C++ и обычные-то одинарные указатели использовать не следует.
0
|
|
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 09.07.2016, 11:20 | |
|
O_Q, в Ява вы не можете вернуть результат в аргументе если аргумент это не обьект и вы всегда можете модифицировать аргумент внутри функции если он является объектом - просто такой язык - нет опции = другой подход
Добавлено через 26 секунд Nick Alte, ну ну
1
|
|
|
Комп_Оратор)
|
|||
| 09.07.2016, 13:25 | |||
![]() ref и out присутствуют лишь в списке параметров/аргументов. Сами переменные объявляются по значению. В сравнении с С++ это ближе к ссылкам. Указатель же в отличие от ссылки нормальный тип в том смысле, что он и объявляется и передаётся одинаково.
1
|
|||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 09.07.2016, 15:05 | |
|
IGPIGP, скорее не холивар а лайвхак) среднего ума сопровождающий разработчик быстрее осознаёт что передача в функцию адреса указателя и присвоение значения разыменованию этого адреса внутри функции происходит не спроста. В случае со ссылками его может ждать упс
Добавлено через 57 секунд По второму - я писал не за шарп а за яву
1
|
|
|
Комп_Оратор)
|
||
| 09.07.2016, 16:13 | ||
). А константную ссылку всё-таки, ещё скастить надо, - мороки больше. ![]() Но я согласен с тобой в том, что если предусмотрен возврат nothing (0/NULL/nullptr), то указатель, это выбор истинных джентльменов. ![]()
0
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||
| 09.07.2016, 16:29 | |||
![]()
0
|
|||
|
Комп_Оратор)
|
|||
| 09.07.2016, 16:50 | |||
0
|
|||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||
| 09.07.2016, 17:06 | |||
|
http://en.cppreference.com/w/cpp/utility/optional
1
|
|||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 09.07.2016, 17:42 | |
|
IGPIGP, ct0r, я лишь объяснил как принято в лучших домах Европы) и тот и другой подход разрешён языком. у каждого мысли свои скакуны
1
|
|
|
Комп_Оратор)
|
||||
| 09.07.2016, 19:07 | ||||
0
|
||||
| 09.07.2016, 19:07 | |
|
Помогаю со студенческими работами здесь
20
В matlab есть указатели на переменные или что-нибудь похожее на указатели? Через указатели на указатели посчитать сумму двух чисел и записать в третье Почему Лафоре использует указатели на указатели, вместо обмена значениями указателей? Используя нетипизированные указатели и указатели на подпрограммы обобщить сортировку пузырьком Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|