【发布时间】:2012-10-01 20:24:46
【问题描述】:
我对 C++ 智能指针非常陌生,我很难理解关于将它们用于函数参数的建议。
“C++ 编码标准:101 条规则、指南和最佳实践”说这些是传入智能指针的原因。
更喜欢通过(智能)指针传递
- 如果参数是可选的(因此调用者可以将 null 作为“不可用”或“不关心”值传递)
- 或者如果函数存储了指针的副本
- 或以其他方式操纵参数的所有权。
谁能给我每个例子,为什么不使用智能指针在这种情况下会是一个坏主意?
【问题讨论】:
-
那是什么 C++ 编码标准?
-
Sutter 有一本书,我相信 Alexandrescu 简称为“C++ 编码标准”。我认为这就是 OP 所引用的,但我似乎无法找到自己的副本来验证。这是一本非常好的书,应该适合每一个认真的 C++ 开发人员。书架。
-
@Rob : 添加书名
-
找到我的副本。文本逐字匹配,但项目符号列表不同。 C++ 编码标准,Sutter 和 Alexandrescu,第 25 条,第 46 页。amazon.com/Coding-Standards-Rules-Guidelines-Practices/dp/…
-
@CrazyEddie 是的,它在 list of recommended books on C++ 这里。
标签: c++ function pointers smart-pointers