编译器为每个类默认重载了赋值操作符
默认的赋值操作符仅完成浅拷贝
当需要进行深拷贝时必须重载赋值操作符
赋值操作符与拷贝构造函数有相同的存在意义
Test& operator = (const Test& obj)
{
if (this != obj)
{
delete m_pointer;
m_pointer = new int(*obj.m_pointer);
}
return *this;
}
一般性原则
重载赋值操作符,必然需要实现深拷贝!!!
编译器为每个类默认重载了赋值操作符
默认的赋值操作符仅完成浅拷贝
当需要进行深拷贝时必须重载赋值操作符
赋值操作符与拷贝构造函数有相同的存在意义
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