Yip*_*Yay 3 c++ parameter-passing shared-ptr
有人对如何boost::shared_ptr通过价值或参考传递任何理想.
在我的平台(32位)sizeof(shared_ptr)等于8个字节,看起来我应该通过引用传递它们,但也许有人有另一个意见/做了一个配置文件/类似的东西?
在C++中,根据对象的大小选择是否传递值或引用通常是个坏主意.
部分原因是编译器通常会在按值传递时执行复制省略,从而否定复制值的成本,但主要是因为这两个选项的行为通常不同.
因此,选择最能表达您需要做的选项.
使用a shared_ptr,其存在的全部原因是它可以被复制,以便多个对象可以共享指向对象的所有权.如果你从未传递过shared_ptr值,你可以开始想知道为什么它是一个 shared_ptr.那么A scoped_ptr可能是更有效的解决方案.
很显然,这并不是说你应该总是传递shared_ptr由值的两种.只是按值传递是他们的常见用例.
如果您需要调用者和被调用者拥有共享所有权,请按值传递.如果您不希望被调用者拥有任何所有权,请通过引用传递.
| 归档时间: |
|
| 查看次数: |
1111 次 |
| 最近记录: |