LINUX.ORG.RU

Просто указатель, обернутый в класс. Адрес там есть, как и в C. Память автоматически освобождается в деструкторе.

bigbit ★★★★★
()

@hibou, ты извини конечно, что отрываю от мечтаний модельных дивах, но есть что сказать?

Lusine
() автор топика

Там тоже адреса переменной нет внутри, как и в С?

И водь такие как ты умудряются научиться говорить и буковы даже какие-то печатать.

apt_install_lrzsz ★★★★
()

А что тогда делает их умными?

Они умнее среднего разработчика на Си.

yorshka
()
Ответ на: комментарий от Lusine

Так ни кто и не говорил что адреса нет, тебе лишь сказали что сырой указатель (объект указательного типа в абстрактной машине языка) сейчас - не только и не столько адрес. И другие составляющие более важные, а конкретные значение и действия с адресом - их следствие.

zurg ★★
()
Ответ на: комментарий от lovesan

Спросил «Что такое указатель»?

Указатель — это переменная, которая хранит адрес другой переменной в памяти, а не её значение напрямую.

Норм? Тогда вывожу умный это «адрес объекта и счетчик(в случае shared), обернутые в класс».

Lusine
() автор топика

Указатель (англ. pointer) — переменная, диапазон значений которой состоит из адресов ячеек памяти или специального значения — нулевого адреса. Последнее используется для указания того, что в данный момент указатель не ссылается ни на одну из допустимых ячеек. Указатели были изобретены Ющенко Екатериной Логвиновной в Адресном языке программирования (1955 г.).

https://ru.wikipedia.org/wiki/%D0%A3%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C_(%D1%82%D0%B8%D0%BF_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)

Получается, что наша Катя изобрела указатели задолго до появления вашей сишечки?

Lusine
() автор топика
Ответ на: комментарий от Lusine

Указатель не содержит адрес, но содержит адрес.

Когда ты сможешь решить этот коэн, ты познаешь дзен и сможешь программировать.

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

После этого я начал патчить KDE,

под FreeBSD?
какая-то странно знакомая история…

olelookoe ★★★★
()
Ответ на: комментарий от bigbit

Это unique_ptr. Есть ещё shared_ptr, где счётчик ссылок (он кстати atomic, но не сам указатель), и ещё weak_ptr.

В си тоже можно сделать unique_ptr используя cleanup атрибут в GCC. Его аналога в MSVC, к сожалению, нет.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 1)
Ответ на: комментарий от Lusine

Можно долго исследовать кто что изобрёл первым, а кто изобрёл заново... Сишечка то тут при чём?

Строго говоря, первым, кто описал работу указателей, был советский математик Андрей Колмогоров. Он изложил теоретические основы этой идеи в своей научной работе «К определению алгоритма».

mky ★★★★★
()

И этот человек осмеливается смеяться над теми, кто пытается ему разъяснить, что указатель — не адрес…

shdown ★★
()
Ответ на: комментарий от Lusine

А если вывести умный указатель получится адрес объекта в памяти?

Чтобы вывести умный указатель, нужно будет селекционировать глупые указатели в течение многих поколений.

shdown ★★
()
Ответ на: комментарий от shdown

Чтобы вывести умный указатель, нужно будет селекционировать глупые указатели в течение многих поколений.

умный указатель - это как глупый указатель, но умный.

olelookoe ★★★★
()
Ответ на: комментарий от Lusine

В смысле распечатать численное представление? Да, и сделать это надо до отработки delete, после будет UB (это если выдернул сырой указатель get()-ом и он пережил исходный умный)

zurg ★★
()
Ответ на: комментарий от Lusine

Указатели были изобретены Ющенко Екатериной Логвиновной в Адресном языке программирования

Очень смелое утверждение, учитывая что косвенная адресация была даже в самых древних компах.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Косвенная адресация, может и была, только на западе считают, что указатели были изобретены в 1964 году в ЯП PL/I. За это (invention of the pointer variable concept for programming languages) его автор Harold W. “Bud” Lawson получл в 2000 году IEEE Computer Pioneer award.

mky ★★★★★
()
Ответ на: комментарий от olelookoe

Истинно мудрый указатель не указывает на что-то, от указывает, куда вопрошающему проследовать.

apt_install_lrzsz ★★★★
()

Ну как умная стиральная машина, то бишь ИИдиотом. Сейчас куда ни плюнь, всë умное, походу кроме человека.

PunkPerson
()
Последнее исправление: PunkPerson (всего исправлений: 1)
Ответ на: комментарий от anonymous

умный поверх указателя накладывает систему учета ссылок.
мудрый поверх указателя имеет систему ИИ обдумывания где-чаго так али не так - современно молодежно круто !!

pfg ★★★★★
()
Ответ на: комментарий от vbr

Так Катя Ющенко с Украины была. Дфмн, между прочим, и член-корреспондент.

Lusine
() автор топика
Ответ на: комментарий от vbr

Интерестно, как у вас «Soviet Ukrainian computer scientist Kateryna Yushchenko» перевелось в «украинцы»... А награду всё равно дали за указатели в PL/I :)

А смысл моего поста был про то, что они там, в IEEE Computer Society отличают на уровне идеи «указатели» и «косвенная адресация».

mky ★★★★★
()
Ответ на: комментарий от mky

Чисто мужской шовенизм. Обидка их взяла, что их обскакала какая то бабенка, пусть даже и доктор наук.

Lusine
() автор топика
Ответ на: комментарий от mky

Косвенная адресация, может и была, только на западе считают, что указатели были изобретены в 1964 году в ЯП PL/I.

За что наградили Гарольда Лоусона: For inventing the pointer variable and introducing this concept into PL/I, thus providing for the first time, the capability to flexibly treat linked lists in a general-purpose high level language.

Во-первых, он ввёл в язык программирования собственно указатель как тип данных. До PL/I в языках высокого уровня в целом не была доступна прямая работа с указателями. Считалось, что это небезопасно, и следовало пользоваться массивами. Максимум — передавать значения в подпрограммы по ссылке.

Во-вторых, в PL/I были как нетипизированные (POINTER), так и типизированные указатели (HANDLE). Последние работали как раз высокоуровнево: были абстрагированы от аппаратной реализации, инкремент и декремент изменяли адрес пропорционально размеру связанной структуры, вычитание однотипных хендлов возвращало количество структур, а вычисление разности разнотипных хендлов было запрещена.

Наконец, формализация указателя как типа данных позволяла поместить его в структуру (например, нода связанного списка), создав возможность организации сложных типобезопасных структур данных.

static_lab ★★★★★
()
Ответ на: комментарий от mky

получл в 2000 году IEEE Computer Pioneer award

Отличный пример наказания невиновных и награждения непричастных. Указатели в языках вроде pl/1 или Си это просто выражение косвенной адресации в контексте синтаксиса конкретного языка. Говорить про «изобретение» в широком смысле тут совершенно неуместно. А в узком бессмысленно (в каждом языке когда-то изобрели указатели).

no-such-file ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария