重载 = 运算符时,应该使一个对象的内容等于另一个对象的内容,还是使对象的指针指向同一个对象?
回顾这个问题,似乎应该复制内容而不是指针。但我就是想不通,所以如果有人能解释我应该做什么,我将不胜感激,我知道如何同时做,我只是不确定选择哪一个。
class IntObject
{
private:
int *pi_One;
public:
IntObject(void);
IntObject::IntObject(int const &i_one);
~IntObject(void);
IntObject & operator=(const IntObject&);
};
IntObject::IntObject()
{
pi_One = new int(0);
}
IntObject::IntObject(int const &i_one)
{
pi_One = new int(i_one);
}
IntObject::~IntObject(void)
{
delete pi_One;
}
IntObject & IntObject::operator=(const IntObject& c) {
//This copies the pointer to the ints
this->pi_One = c.pi_One;
return *this;
}