UE的智能指针和STL智能指针 虚幻的几个基本的智能指针,基本能够对标 STL 中的几个指针:TSharedPtr(std::shared_ptr)、TWeakPtr(std::weak_ptr)、TSharedFromThis(std::enable_shared_from_this)、TUniquePtr(std::unique_ptr )。除此之外,还有一个TSharedRef 是 UE 自己独有的。 此外,相比于 STL ,UE 的...
整体上 UE 的智能指针,比STL的好读多了,而且用起来也比较像。顺带的UE 还提供了一个测试代码,存在于 SharedPointerTesting.inl。初学者应该从这里面学习智能指针的使用方式。它默认不参与编译但可以打开WITH_SHARED_POINTER_TESTS宏来参与编译,里面有不少智能指针的示例,基本上把共享指针的用法覆盖全了,也可以作为...
UE5的智能指针设计使得代码可读性更强,用法更加直观,相较于STL,UE5的智能指针在实现上更为高效和灵活。UE5提供了丰富的测试代码和示例,帮助开发者快速上手。通过阅读本文,开发者可以深入了解UE5智能指针的内部实现和最佳实践,从而在项目中高效地使用它们。
运行后就会报错,显示的是pt指针被重复释放了 原因是p1和p2都以为自己是唯一独占pt的智能指针,不知道还有智能指针指向pt 所以输出后发现两个引用计数都是1 如果需要不报错,就得这样写 shared_ptr<int> p2 = p1 通过p1来定义p2,它们就知道pt有两个智能指针了,就不会报错。 再来看一个代码 classclient { public...