Начал изучать умные указатели и немного не понял, а зачем

они вообще нужны? То есть, какой смысл в них? Когда использовать обычные указатели, а когда умные?

12 ответов

27 просмотров

Это очень просто. Для uobjectов обычные, потому что их менеджит gc анрила. Всё остальное умные, если в куче.

Sarmat- Автор вопроса

спасибо!

В рамках Анрила если - UObject - обычные. TSharedPtr - для всего, что не UObject, низкоуровневые объекты.

Они умные, смартнесс нью сексинесс )

Sarmat- Автор вопроса

Были бы они настолько умные, что сами бы понимали, что им делать, были бы нью текнолоджи

Они реализуют дополнительную логику в противовес указателю обычному, что есть просто адрес чего-то в памяти

Шаред и вик птр они про управление временем жизни обьекта. Как только умирает последняя шаред ссылка на объект, умирает и объект

Uobject'ы не стоит сувать в шаред, так как временем жизни юобжекта уже управляет система. Шареду сюда лучше не лезть, оно его сожрёт

В твоём случае они вообще не нужны, особенно такие🤣

В анриле все классы, которые наследуются от UObject и помечены как UProperty освобождаются сборщиком мусора. В ванильных плюсах управление памятью либо ручное, либо основанное на области видимости. Кстати на твоём скрине потенциально опасная бессмысмыслица, где ты используешь одновременно два не связанных механизма управления памятью.

Sarmat- Автор вопроса

👌

Похожие вопросы

Обсуждают сегодня

Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Всем привет. Запускаю snmp_server вызовом snmp:start() и получаю вот это: {bad_return, {{snmp_app,start,[normal,[]]}, {'EXIT', {{badmatch, {error, {{shutdown, {failed_to_sta...
Δημήτηρ
9
Кто хочет поиграться в легкий взлом специально уязвимого приложения? :) Ваше задани - вы студент группы 416 - оценку в 100 баллов и найти 10 флагов (текстовых) формата Step0...
Andrii Kurdiumov
4
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
После переезда на эликсирные доки я не могу найти в интернете актуальную документацию. Раньше вбивал в гугл erlang man ets и первым результатом была свежая дока. Теперь там ст...
Danil Zagoskin
6
<div class="report-widget"> <h3 style="margin-bottom:10px;"> <?= e(__($this->property('title'))) ?> </h3> <button type="submit" data-request-flash ...
Vladimir 
2
помню, предыдущий ноут (последний с тачбаром (А ПОМНИТЕ?) и эскейпом) высаживался почти в ноль за полдня работы, его проще было держать на проводке всегда. на м1 максе я мог п...
Kirill Titov
2
Точно проблема в твиге?
Vladimir 
5
Карта сайта