为什么下面程序的输出是 200-200?这里只是改变object2成员变量的值。
class X
{
private:
int *m_plnt;
public:
X():m_plnt(new int()){}
X(const X & rhs)
{
m_plnt = rhs.m_plnt;
}
void setvalue(int value) { *m_plnt = value; }
int getvalue(){return *m_plnt;}
};
int main()
{
X obj1;
obj1.setvalue(100);
X obj2(obj1);
obj2.setvalue(200); // how its changing obj1.m_plnt value
return 0;
}