一、共享指针
TSharedPtr<> 是跟据拷贝构造函数进行引用计数的智能指针,由于UObject 类型自带垃圾回收,所以 TSharedPtr<> 不能是UObject的
Usage:
- MakeShareable 可将原生C++ 指针变成 共享指针
- Get方式获取指针带有有效性检测功能,安全
- Reset 可释放指针计数
二、共享引用
和共享指针的区别是 共享指针可以为NULL,而共享引用不能为NULL
Usage:
三、弱指针
共享指针常见的问题有空悬指针和循环引用,原理详见:《C++弱引用智能指针weak_ptr的用处》,为了解决这两个问题,有了弱指针的概念
循环引用:
销毁后,还是1,内存泄漏
一个弱指针使用场景的案例:
四、UE4智能指针VS C++11 智能指针
为什么UE4要开发一套自己的智能指针?
五、智能指针的优缺点
六、智能指针的转换
基类转父类:
const 转换:
七、TSharedFromThis<>
TSharedFromThis<> 可以方便的从一个原始指针,转为一个共享指针,并且自带一个弱指针