经典问题解析三

编译器为每个类默认重载了赋值操作符

默认的赋值操作符仅完成浅拷贝

当需要进行深拷贝时必须重载赋值操作符

赋值操作符与拷贝构造函数有相同的存在意义

 

Test& operator = (const Test& obj)

{

  if (this != obj)

  {

    delete m_pointer;

    m_pointer = new int(*obj.m_pointer);

  }

  return *this;

}

一般性原则

重载赋值操作符,必然需要实现深拷贝!!!

posted @ 2018-05-29 01:01  sugarwill  阅读(97)  评论(0编辑  收藏  举报