引用计数(Reference Counting)是一种内存管理技术,它主要用于跟踪对象被引用的次数。
在引用计数中,每个对象都有一个计数器,记录着当前对象被引用的次数。
当对象被引用时,计数器加1;当引用失效时,计数器减1。
当计数器为零时,表示没有任何引用,可以安全地释放对象。
在C++中,引用计数通常通过智能指针实现,特别是std::shared_ptr。
std::shared_ptr 使用引用计数来跟踪共享的对象。
计数器存储在一个控制块(control block)中,这个控制块同时还包含了指向实际对象的指针。
给个例子,展示如何使用 std::shared_ptr 实现引用计数:
#include
#include
class MyClass {
public:
MyClass() {
std::cout