얕은 사본이 포인터를 공유합니까? (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
'에스 nine
S는 동일하게 가리킬 것입니다 8
, 그러나 그들은 같은 포인터를 공유 할 것인가? 즉:
int Necronine = 9;
Obj1.nine = &Necronine;
Obj2.nine == ???
~ 할 것이다 Obj2
'에스 nine
가리키다 Necronine
, 아니면 계속 가리키는 것입니다 8
?
해결책
OBJ2가 Necronine을 9 번 지적 할 것인가, 아니면 8시에 계속 지적됩니까?
이 라인이 실행될 때 : obj obj2 = obj1; // 모든 객체에는 자신의 포인터가 있습니다 value(copy)
의 obj1.nine
복사됩니다 obj2.nine
그리고 그게 다야.
제휴하지 않습니다 StackOverflow