我知道如果我做这样的事情:

class Obj
{
public:
    int* nine;
};

Obj Obj1; //Awesome name
int eight = 8;
Obj1.nine = &eight;
Obj Obj2 = Obj1; //Another Awesome name


那么Obj1Obj2nine将指向相同的8,但是它们将共享相同的指针吗?即:

int Necronine = 9;
Obj1.nine = &Necronine;
Obj2.nine == ???


Obj2nine会指向Necronine,还是保持指向8

最佳答案

将Obj2的九点指向Necronine,
  还是会保持指向8?


它将始终指向8。执行此行时:
Obj Obj2 = Obj1; //每个对象都有自己的指针
value(copy)obj1.nine复制到obj2.nine中。

07-24 14:02