我对Objective-C和自动参考计数的了解非常清楚。最近我正在学习C ++,智能指针。我发现智能指针和自动引用计数非常相似。
虽然我无法通过使用C ++和Objective-C的代码示例/示例找到智能指针和自动引用计数的并排比较(相似性和相异性)。那么有人可以给我一个详细的解释吗?
编辑:在这里,通过Smart Pointers,我只指示std::shared_ptr
,std::weak_ptr
和std::unique_ptr
。
答案 0 :(得分:1)
智能指针不一定必须在引用计数方面实现。
unique_ptr
不使用任何形式的引用计数 - 当unique_ptr
超出范围时,指针被销毁。因此,unique_ptr
被认为与原始指针一样高效,这很好:在可以使用独占所有权的情况下,您可以同时使用自动内存管理和与基于行指针的实现相媲美的性能。
shared_ptr
通常使用某种形式的引用计数来实现,因为它模拟共享所有权:当没有更多所有者时,资源被销毁。