为什么我更喜欢智能指针上的智能指针引用作为C ++中的参数

时间:2015-08-13 09:52:40

标签: c++ pointers c++11 pass-by-reference pass-by-pointer

我目前正在研究一些代码(c ++ 11),它大量使用指针的引用,例如。

class SomeClass;

class MyClass
{
public:
   MyClass( const std::shared_ptr < SomeClass > & class) 
    : m_class(class)
   {}

private:
   std::shared_ptr < SomeClass > m_class
}

我对此上的性能进行了一些测试(使用Visual Studio 2013 VC12)并且似乎没有时间差异。移交Null-Ptr也没关系。

那么在这种情况下使用引用的可能原因是什么?

1 个答案:

答案 0 :(得分:1)

可能的原因是:

  1. 性能。通过值传递引用(一个CPU寄存器)而不是智能指针应该更快。您的性能测试有问题。
  2. 节省堆栈空间。按值传递的智能指针在堆栈上占用的空间比引用要多。