Умный указатель против автоматического подсчета ссылок

Мои знания об Objective-C и автоматическом подсчете ссылок очень ясны. И недавно я изучаю C ++, Smart Pointer. Я обнаружил, что умный указатель и автоматический подсчет ссылок очень похожи.

Хотя я не смог найти параллельное сравнение (сходства и различия) по интеллектуальному указателю и автоматическому подсчету ссылок с примером / примером кода с использованием C ++ и Objective-C. Так может кто-нибудь дать мне подробное объяснение этого?

РЕДАКТИРОВАТЬ: Здесь Smart Pointers я указываю только std::shared_ptr, std::weak_ptr а также std::unique_ptr,

0

Решение

Умные указатели не обязательно должны быть реализованы с точки зрения подсчета ссылок.

unique_ptr не использует какую-либо форму подсчета ссылок — когда unique_ptr выходит из области видимости, уничтожается. Следовательно unique_ptr считается таким же эффективным, как необработанный указатель, и это хорошо: в случаях, когда можно использовать исключительное владение, у вас есть как автоматическое управление памятью, так и производительность, сопоставимая с реализацией на основе указателя строки.

shared_ptr обычно реализуется с использованием некоторой формы подсчета ссылок, потому что она моделирует совместное владение: когда больше нет владельцев, ресурс уничтожается.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector