c++ - 如何解释这条语句 "A pointer in a function should not represent ownership"

标签 c++ c++11

基于 this

Stroustrup 建议“函数中的指针不应表示所有权”

问题> 有人可以给我一些详细的解释吗?最好能举例说明。

谢谢

最佳答案

如果某个代码负责删除指针或将所有权转移给其他人,则该指针由某些代码“拥有”。各种智能指针实现了明确的所有权模型。 shared_ptr 表示多段代码拥有一个指针。 unique_ptr 表示只有一段代码拥有该指针。

他的意思是,如果一个函数有一个裸指针(一个不在智能指针中的指针),它应该被认为拥有它。如果要声明此指针的某些所有权,则应该为其提供一个智能指针作为参数,或者它应该将使用 new 创建的指针存储在智能指针中。

他说只有智能指针拥有指针。如果函数将裸指针作为参数,则它不会声明对该指针的所有权。如果函数返回一个裸指针,不能声明对该指针的所有权。

关于c++ - 如何解释这条语句 "A pointer in a function should not represent ownership",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608150/

相关文章:

c++ - 如何在 lambda 表达式中捕获单个类数据成员?

c++ - 如何使用元编程过滤 const 类型和非 const 类型?

c++ - 如何将 LPWSTR*(或 WCHAR*)转换为 LPWSTR

c++ - 索拉里斯 10 : Alternative to dirfd()

c++ - 用于查找具有最独特值的 'n' 集的伪代码或算法?

c++ - 如何将 QMainWindow 设置为模式窗口?

c# - 有人可以(很好地)解释为什么 OOP 方法重载是一件好事吗?

c++ - 成员函数和const成员函数指针推导

c++ - 如何为 boolinq 实现 First 和 FirstOrDefault?

C++ 如何修复多重声明编译器错误