s(const s& src)
{
cout<<"Copy\n";
p =src.p;
}
void disp(int x=0)
{
*p = x;
cout <<"Value at p :"<<*p <<endl<< p<<endl;
}
};// relevant piece of code
s s1;
s s2 = s1;
s1.disp(200);
s2.disp();
在这个程序中,我所期待的是,因为对象 s1 和 s2 的数据成员 p 指向相同的内存位置,所以对象 s1 的 p 值的任何变化都应该反映对象 s2 中 p 的值。 p 持有的地址对于 s1 和 s2 都是相同的。但是我没有得到 s2.disp 函数的预期结果 200。输出是
Copy
Value at p :200
0x1e069010
Value at p :0
0x1e069010