Мои знания об Objective-C и автоматическом подсчете ссылок очень ясны. И недавно я изучаю C ++, Smart Pointer. Я обнаружил, что умный указатель и автоматический подсчет ссылок очень похожи.
Хотя я не смог найти параллельное сравнение (сходства и различия) по интеллектуальному указателю и автоматическому подсчету ссылок с примером / примером кода с использованием C ++ и Objective-C. Так может кто-нибудь дать мне подробное объяснение этого?
РЕДАКТИРОВАТЬ: Здесь Smart Pointers я указываю только std::shared_ptr
, std::weak_ptr
а также std::unique_ptr
,
Умные указатели не обязательно должны быть реализованы с точки зрения подсчета ссылок.
unique_ptr
не использует какую-либо форму подсчета ссылок — когда unique_ptr
выходит из области видимости, уничтожается. Следовательно unique_ptr
считается таким же эффективным, как необработанный указатель, и это хорошо: в случаях, когда можно использовать исключительное владение, у вас есть как автоматическое управление памятью, так и производительность, сопоставимая с реализацией на основе указателя строки.
shared_ptr
обычно реализуется с использованием некоторой формы подсчета ссылок, потому что она моделирует совместное владение: когда больше нет владельцев, ресурс уничтожается.
Других решений пока нет …