Pav*_*avi 30 c++ shared smart-pointers shared-ptr
我有一个问题.我们可以直接获得共享指针指向的对象吗?或者我们应该通过get()调用获取底层RAW指针然后访问相应的对象?
Ken*_*nde 52
您有两个选项来检索对a指向的对象的引用shared_ptr.假设您有一个shared_ptr名为的变量ptr.您可以使用*ptr或获取参考*ptr.get().这两个应该是等价的,但第一个是首选的.
原因是你真的试图模仿原始指针的取消引用操作.表达式*ptr读取"获取指向的数据ptr",而表达式*ptr.get()"获取包含在其中的原始指针所指向的数据ptr".显然,第一个更清楚地描述了你的意图.
另一个原因是,shared_ptr::get()它旨在用于您实际需要访问原始指针的场景中.在你的情况下,你不需要它,所以不要求它.只需跳过整个原始指针,继续生活在更安全的shared_ptr世界中.
jak*_*kar 16
Ken的答案在上面(或下面,取决于这些是如何排序的)是很好的.我没有足够的声誉来评论,否则我会.
我只想补充一点,您也可以->直接在a上使用运算符shared_ptr来访问它指向的对象的成员.
该升压文件给出了一个很好的概述.
现在C++ 11被广泛采用,std::shared_ptr应该优先于Boost版本.请在此处查看解除引用操作符.
| 归档时间: |
|
| 查看次数: |
38888 次 |
| 最近记录: |