0

我對Objective-C和自動引用計數的瞭解非常清楚。最近我正在學習C++智能指針。我發現智能指針和自動引用計數非常相似。智能指針與自動引用計數

雖然我找不到智能指針和自動引用計數與使用C++和Objective-C的代碼示例/示例並行比較(相似性和差異性)。所以任何人都可以給我一個關於這個的詳細解釋嗎?

編輯:在這裏,通過智能指針,我只指示std::shared_ptr,std::weak_ptrstd::unique_ptr

+1

一種是語言功能,另一種是建立在語言之上的庫實用程序。 – StoryTeller

+0

C++有很多智能指針,根本沒有引用計數。 –

+0

@SACHINGOYAL:在這裏,通過智能指針,我只顯示了shared_ptr,weak_ptr和unique_ptr。 –

回答

1

智能指針不一定必須在引用計數方面實現。

unique_ptr不使用任何形式的引用計數 - 當unique_ptr超出範圍時指針被銷燬。因此,unique_ptr被認爲與原始指針一樣高效,這很好:在可以使用獨佔所有權的情況下,您可以將自動內存管理和性能與基於行指針的實現相比較。

shared_ptr通常使用某種形式的引用計數來實現,因爲它模擬共享所有權:當沒有更多所有者時,資源被銷燬。