Делают ли мелкие копии общие указатели? (C ++) - PullRequest
0 голосов
/ 30 октября 2009

Я знаю, что если я сделаю что-то вроде этого:

class Obj
{
public:
    int* nine;
};

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

тогда Obj1 и Obj2 * nine будут указывать на один и тот же 8, но будут ли они иметь один и тот же указатель? I.e.:

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

будет Obj2 nine указывать на Necronine или будет продолжать указывать на 8?

1 Ответ

4 голосов
/ 30 октября 2009

будет девять очков Obj2 к Некронину, или он по-прежнему будет указывать на 8?

Он будет продолжать указывать на 8. При выполнении этой строки: Obj Obj2 = Obj1; // у каждого объекта есть свой указатель value(copy) из obj1.nine копируется в obj2.nine и это все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...