Делают ли мелкие копии общие указатели? (C ++)
-
22-07-2019 - |
Вопрос
Я знаю, что если я сделаю что-то вроде этого:
class Obj
{
public:
int* nine;
};
Obj Obj1; //Awesome name
int eight = 8;
Obj1.nine = &eight;
Obj Obj2 = Obj1; //Another Awesome name
затем Obj1
и Obj2
девять
будут указывать на те же 8
, но будут они имеют один и тот же указатель? То есть:.
int Necronine = 9;
Obj1.nine = &Necronine;
Obj2.nine == ???
будет Obj2
девять
указывать на некронин
или будет продолжать указывать на 8
? р>
Решение
будет девять очков Obj2 к некронину, или он по-прежнему будет указывать на 8?
Он будет указывать на 8. Когда эта строка будет выполнена:
Obj Obj2 = Obj1; // у каждого объекта есть свой указатель
значение (копия)
из obj1.nine
копируется в obj2.nine
, и это все.
Не связан с StackOverflow