|
-7 / 2 / 1
Регистрация: 10.04.2016
Сообщений: 53
|
|
Используются ли на практике указатели на указатели объектов?09.07.2016, 08:24. Показов 3430. Ответов 67
Метки нет (Все метки)
Имеются ввиду указатели именно на объекты, а не динамические массивы.
Например такой: Object** obj; А как насчёт такого: Object*** obj; Если такие приёмы используются, приведите пример, где это целесообразно. Какие аналоги применяются в таких языках как C#?
0
|
|
| 09.07.2016, 08:24 | |
|
Ответы с готовыми решениями:
67
Как на практике используются указатели на члены класса Указатели от теории к практике Указатели и указатели на указатели, а также типы данных |
| 11.07.2016, 00:36 | |
|
На правах дилетанта (мимо крокодил
) - я сразу после фразы "может вернуть а может и не вернуть" почуял неладное, и памятуя автора, подозревал что он про мэйбимонады... А тут еще гуру про "ван левел поинтер" процитировал... С++ как Майкл Джексон, с каждым новым релизом делает себе очередное обеление кожи и не хочет считаться наследником указательного языка, имхо. Несмотря на вынужденность обратной совместимости.
2
|
|
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 11.07.2016, 06:38 | |
|
ct0r, набор вырванных из контекста фраз - каждая является истиной но ни одна из них ни даже их сумма не является "используйте ссылки". Другого сложно было ждать от мукулатуроведа
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 11.07.2016, 09:40 | ||
![]() Я понимаю, что вам неохота выкидывать вашу книжку с догмами в корзину, читать всякие "сложные" вещи на английском, менять мышление, привыкать к новому стилю и все такое, - но это именно то, что разработчики ПО должны делать постоянно. Кто этого не умеет, тому не добиться успеха в профессии. Советую подумать об этом на досуге и проникнуться.
0
|
||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|||||||||||
| 11.07.2016, 15:00 | |||||||||||
|
ct0r, мда. вы не привели ни одной причины по которой использование ссылки при возврате через аргумент было бы полезнее использования указателя.
пример 1
---- F.17 говорит с нами голосом Капитана Очевидность - если вы хотите иметь in-out передавайте ссылку и помните что это источник ошибок так как объект может быть изменен - возможности ссылок и так понятны любому кто имеет представление о языке. данный пункт тут не подходит. F.20 и F.21 вообще касаются возвращаемых значений - здесь так же любому знакомому с предметом должно быть ясно что возврат лучше делать естественным для функции образом через результат, а не через аргумент. F.60 указывает нам на полезность использования указателей если по условиям задачи мы можем возвращать NULL. F.42 указывает вообще на какие-то дошкольные понятия о недопустимости возврата адресов локальных объектов. во всяком случае лучше я этот пункт понять не смог, если вы смогли - объясните. подводя итог: этот набор F больше подходит для азбуки, а не для практического руководства. год выпуска, автор и язык оригинала не влияют на суть - надо не просто читать - нужно понимать что вы читаете. ---- в той книге которую вы совсем не по делу осмеиваете и которая как раз является набором правил выработанных при практическом применении языка я встретил такой вот прием: выбирайте пример 2 так как "&" сигнализирует читающему код о том что передаваемый объект может быть изменен. и не важно какая среда разработки - работает над кодом все равно человек - да, он может воспользоваться контекстной всплывающей подсказкой отображающей сигнатуру метода или просто может знать о том что по документации данная функция может изменять объект, но... он всего лишь человек. продвинутая среда разработки и высокая квалификация не делает из него супермена. возможности разработчика держать в голове всю картину не безграничны. функций может быть много. документации может быть еще больше. времени для просмотра подсказок может не быть вовсе. если этот самый "&" позволит человеку сразу получить достаточно важную для работы с кодом информацию, то это благо (даже если это 1% случаев - зачем упускать этот шанс?). именно этим второй пример отличается от первого. именно по этому при всем техническом равенстве обоих примеров мне кажется по возможности стоит отдавать предпочтение второму.
0
|
|||||||||||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 11.07.2016, 15:32 | |
|
vxg
Хватит пороть чушь! swap уже много лет существует в стандарте, и никто не говорит, что это так неудобно, передавать объекты по ссылке, вместо указателя. Не говоря уже о том, что & просто может быть перегружен и что по указателю можно передать NULL.
0
|
|
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 11.07.2016, 16:54 | |
|
mporro, чушь тут порите вы начиная от хаха про индийских программеров и заканчивая перегрузкой & - ни один нормальный разработчик не будет модифицировать операторы таким образом что бы кардинально поменять их смысловую нагрузку
0
|
|
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 11.07.2016, 17:18 | |
|
vxg
Вам уже всё разжевали и в рот положили. Все используют ссылки и никому в голову не приходило, что это, видите-ли страшно неудобно! И нигде в таблице Герба Саттера в качестве принимаемого параметра нет указателя. https://www.youtube.com/watch?... .be&t=3454 Если Вы не умеете использовать С++ -- это ваши личные трудности. Но транслировать свою глупость окружающим -- это перебор!
0
|
|
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 11.07.2016, 17:20 | |
|
mporro, никто не говорит что это страшно неудобно - если вы не умеете использовать глаза это ваши трудности
0
|
|
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|||
| 11.07.2016, 17:25 | |||
|
Вполне логично, например, возвратить при операции взятия адреса указатель на какую-то память, которую класс абстрагирует. Точно также, как вполне логично перегрузить разыменование для умного указателя. Вот только это будут другие адреса и другие разыменования, хотя с точки зрения бизнес-логики они будут идеально осмыслены. Добавлено через 3 минуты Так почему же не используют в swap указатели?! Как же так? Они же удобнее!
0
|
|||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
||
| 11.07.2016, 17:28 | ||
|
mporro, результат применения перегруженного оператора к объекту в идеале не должен отличаться от того что было бы если бы вы применили этот оператор к обычному типу если подобные аналогии вообще существуют. то есть не нужно перегружать умножение для суммирования или делать еще какую нибудь ересь вроде того что вы описали
Добавлено через 1 минуту
0
|
||
|
Комп_Оратор)
|
||
| 11.07.2016, 17:50 | ||
|
1
|
||
| 11.07.2016, 17:53 | |
|
Не по теме: IGPIGP, на третьей (!) странице обсуждения хоть кто-то вспомнил о ТС :D
0
|
|
| 11.07.2016, 18:00 | |
|
0
|
|
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
||
| 11.07.2016, 18:14 | ||
|
Конечно, указатели ближе к С#-ссылкам. ТС также хочет знать, где эти указатели использовать. И хороший ответ -- нигде. За исключением, возможно, умных указателей, если есть накладные расходы на heap. О чём и рассказывает Саттер. То, что ссылки C# могут быть NULL, скорее плохо, чем хорошо.
0
|
||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 11.07.2016, 19:42 | |
|
Croessmah, было, см Используются ли на практике указатели на указатели объектов?
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||||||||
| 11.07.2016, 19:45 | |||||||||
|
Копнем чуть глубже.
0
|
|||||||||
|
Модератор
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
|
|
| 11.07.2016, 19:47 | |
|
ct0r, если вы не поняли то уже не поймёте не напрягайте то место в которое вы еду проталкиваете
0
|
|
| 11.07.2016, 19:47 | |
|
Помогаю со студенческими работами здесь
60
В matlab есть указатели на переменные или что-нибудь похожее на указатели? Через указатели на указатели посчитать сумму двух чисел и записать в третье Почему Лафоре использует указатели на указатели, вместо обмена значениями указателей? Используя нетипизированные указатели и указатели на подпрограммы обобщить сортировку пузырьком Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через 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
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|