|
-7 / 2 / 1
Регистрация: 10.04.2016
Сообщений: 53
|
|
Используются ли на практике указатели на указатели объектов?09.07.2016, 08:24. Показов 3674. Ответов 67
Метки нет (Все метки)
Имеются ввиду указатели именно на объекты, а не динамические массивы.
Например такой: Object** obj; А как насчёт такого: Object*** obj; Если такие приёмы используются, приведите пример, где это целесообразно. Какие аналоги применяются в таких языках как C#?
0
|
|
| 09.07.2016, 08:24 | |
|
Ответы с готовыми решениями:
67
Как на практике используются указатели на члены класса Указатели от теории к практике Указатели и указатели на указатели, а также типы данных |
| 11.07.2016, 00:36 | |
|
На правах дилетанта (мимо крокодил
) - я сразу после фразы "может вернуть а может и не вернуть" почуял неладное, и памятуя автора, подозревал что он про мэйбимонады... А тут еще гуру про "ван левел поинтер" процитировал... С++ как Майкл Джексон, с каждым новым релизом делает себе очередное обеление кожи и не хочет считаться наследником указательного языка, имхо. Несмотря на вынужденность обратной совместимости.
2
|
|
|
Модератор
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,464
|
|
| 11.07.2016, 06:38 | |
|
ct0r, набор вырванных из контекста фраз - каждая является истиной но ни одна из них ни даже их сумма не является "используйте ссылки". Другого сложно было ждать от мукулатуроведа
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 11.07.2016, 09:40 | ||
![]() Я понимаю, что вам неохота выкидывать вашу книжку с догмами в корзину, читать всякие "сложные" вещи на английском, менять мышление, привыкать к новому стилю и все такое, - но это именно то, что разработчики ПО должны делать постоянно. Кто этого не умеет, тому не добиться успеха в профессии. Советую подумать об этом на досуге и проникнуться.
0
|
||
|
Модератор
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,464
|
|||||||||||
| 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 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,464
|
|
| 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 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,464
|
|
| 11.07.2016, 17:20 | |
|
mporro, никто не говорит что это страшно неудобно - если вы не умеете использовать глаза это ваши трудности
0
|
|
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|||
| 11.07.2016, 17:25 | |||
|
Вполне логично, например, возвратить при операции взятия адреса указатель на какую-то память, которую класс абстрагирует. Точно также, как вполне логично перегрузить разыменование для умного указателя. Вот только это будут другие адреса и другие разыменования, хотя с точки зрения бизнес-логики они будут идеально осмыслены. Добавлено через 3 минуты Так почему же не используют в swap указатели?! Как же так? Они же удобнее!
0
|
|||
|
Модератор
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,464
|
||
| 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 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,464
|
|
| 11.07.2016, 19:42 | |
|
Croessmah, было, см Используются ли на практике указатели на указатели объектов?
0
|
|
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||||||||
| 11.07.2016, 19:45 | |||||||||
|
Копнем чуть глубже.
0
|
|||||||||
|
Модератор
3409 / 2181 / 354
Регистрация: 13.01.2012
Сообщений: 8,464
|
|
| 11.07.2016, 19:47 | |
|
ct0r, если вы не поняли то уже не поймёте не напрягайте то место в которое вы еду проталкиваете
0
|
|
| 11.07.2016, 19:47 | |
|
Помогаю со студенческими работами здесь
60
В matlab есть указатели на переменные или что-нибудь похожее на указатели? Через указатели на указатели посчитать сумму двух чисел и записать в третье Почему Лафоре использует указатели на указатели, вместо обмена значениями указателей? Используя нетипизированные указатели и указатели на подпрограммы обобщить сортировку пузырьком Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча
Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове.
Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
|
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
|
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера»
Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит.
Придуман Биллом Госпером в 1970-х, опубликован в. . .
|
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb">
<style>
<!]>
</ style>
<g id="bush">
</ g>
</ svg>
function fn(){
let rost;/ / высота древа
let xx=165,yy=210,w=256;
|
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|