我知道如果我做这样的事情:
class Obj
{
public:
int* nine;
};
Obj Obj1; //Awesome name
int eight = 8;
Obj1.nine = &eight;
Obj Obj2 = Obj1; //Another Awesome name
然后Obj1
和Obj2
的{{1}}将指向相同的nine
,但它们会共享相同的指针吗?即:
8
将int Necronine = 9;
Obj1.nine = &Necronine;
Obj2.nine == ???
的{{1}}指向Obj2
,还是会指向nine
?
答案 0 :(得分:4)
Obj2将九点指向Necronine, 还是会继续指向8?
它将保持指向8.当执行此行时:
Obj Obj2 = Obj1; //每个对象都有自己的指针
value(copy)
的{{1}}被复制到obj1.nine
,就是这样。