44 lines
860 B
Markdown
44 lines
860 B
Markdown
|
|
# RefCounted::GetRefCount
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
uint32_t GetRefCount() const;
|
||
|
|
```
|
||
|
|
|
||
|
|
获取当前引用计数。
|
||
|
|
|
||
|
|
**描述**
|
||
|
|
|
||
|
|
返回当前的引用计数值。由于使用 `std::atomic` 实现,因此是线程安全的。
|
||
|
|
|
||
|
|
**返回:** `uint32_t` - 当前引用计数
|
||
|
|
|
||
|
|
**复杂度:** O(1)
|
||
|
|
|
||
|
|
**示例:**
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
#include <XCEngine/Core/RefCounted.h>
|
||
|
|
|
||
|
|
class MyObject : public RefCounted {
|
||
|
|
public:
|
||
|
|
void Debug() {
|
||
|
|
printf("RefCount: %u\n", GetRefCount());
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
MyObject* obj = new MyObject();
|
||
|
|
printf("After create: %u\n", obj->GetRefCount()); // 1
|
||
|
|
|
||
|
|
obj->AddRef();
|
||
|
|
printf("After AddRef: %u\n", obj->GetRefCount()); // 2
|
||
|
|
|
||
|
|
obj->Release();
|
||
|
|
printf("After Release: %u\n", obj->GetRefCount()); // 1
|
||
|
|
```
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [RefCounted 总览](refcounted.md) - 返回类总览
|
||
|
|
- [AddRef](AddRef.md) - 增加引用计数
|
||
|
|
- [Release](Release.md) - 减少引用计数
|