关于复制构造函数和重载赋值运算符

时间:2013-10-15 20:12:40

标签: c++

我想知道应该在哪些情况下定义复制构造函数或赋值运算符。根据我研究的内容,我发现每当值通过值传递或由值返回时,都需要定义复制构造函数和重载赋值运算符。但是,当指针或引用用于通过指针或引用(&)传递/返回时,我们是否需要复制构造函数/重载赋值运算符

class Sample
{
 public :
  // Assume a constructor that sets the node member
  SampleNode * getNode()
  {
    return _node;
  }
 private: 
  SampleNode * node;
}

class SampleNode
{
  public:
   void getValue()
   {
      return _value;
   }
  private: 
   unsigned int value;
}

main()
{
  Sample * ptr = new Sample(15);

  SampleNode *node = getNode(); // Do we need a copy constructor here?
}

1 个答案:

答案 0 :(得分:2)

定义对象的指针或引用不需要使用任何构造函数。