Files
XCEngine/docs/api/core/refcounted/refcounted.md

60 lines
1.5 KiB
Markdown
Raw Normal View History

# RefCounted
**命名空间**: `XCEngine::Core`
**类型**: `class`
**描述**: 引用计数基类,提供线程安全的引用计数生命周期管理。
## 概述
`RefCounted` 是一个简单的引用计数基类。当引用计数归零时,对象会自动删除。它提供了 `AddRef``Release` 方法,线程安全地管理引用计数。
## 公共方法
### 构造/析构
| 方法 | 描述 |
|------|------|
| `RefCounted()` | 构造函数,初始引用计数为 1 |
| `protected virtual ~RefCounted()` | 虚析构函数(受保护,不允许直接删除) |
### 引用计数
| 方法 | 描述 |
|------|------|
| `void AddRef()` | 增加引用计数 |
| `void Release()` | 减少引用计数(归零时自动 delete this |
| `uint32_t GetRefCount() const` | 获取当前引用计数 |
## 方法列表
| 方法 | 描述 |
|------|------|
| [AddRef](AddRef.md) | 增加引用计数 |
| [Release](Release.md) | 减少引用计数 |
| [GetRefCount](GetRefCount.md) | 获取当前引用计数 |
## 使用示例
```cpp
class MyObject : public RefCounted {
public:
MyObject() { /* ... */ }
~MyObject() { /* ... */ }
void DoSomething() { /* ... */ }
};
// 使用
MyObject* obj = new MyObject(); // refCount = 1
obj->AddRef(); // refCount = 2
obj->Release(); // refCount = 1
obj->Release(); // refCount = 0, 自动 delete
```
## 相关文档
- [Core 模块总览](../core.md) - 返回模块总览
- [SmartPtr](../smartptr/smartptr.md) - 智能指针