我有一个问题。我们可以得到共享指针直接指向的对象吗?还是应该通过get()
调用得到底层的RAW指针,然后访问对应的对象?
最佳答案
您有两种选择来检索对 shared_ptr
指向的对象的引用。假设您有一个名为 ptr
的 shared_ptr
变量。您可以使用 *ptr
或 *ptr.get()
获取引用。这两个应该是等价的,但首选第一个。
这样做的原因是您实际上是在尝试模仿原始指针的取消引用操作。表达式 *ptr
读取“Get me the data point to by ptr
”,而表达式 *ptr.get()
“Get me the包装在 ptr
"中的原始指针指向的数据。显然,第一个更清楚地描述了您的意图。
另一个原因是 shared_ptr::get()
旨在用于您实际需要访问原始指针的场景。在你的情况下,你不需要它,所以不要要求它。跳过整个原始指针的事情,继续生活在更安全的 shared_ptr
世界中。
关于c++ - 如何让共享指针指向的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6491955/