经典问题解析三

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

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

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

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

Test& operator = (const Test& obj)

{

  if (this != obj)

  {

    delete m_pointer;

    m_pointer = new int(*obj.m_pointer);

  }

  return *this;

}

一般性原则

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

原文地址:https://www.cnblogs.com/sugarWill666/p/9103127.html