Fazer rasas ponteiros cópias compartilhar? (C ++)
-
22-07-2019 - |
Pergunta
Eu sei que se eu fizer algo como isto:
class Obj
{
public:
int* nine;
};
Obj Obj1; //Awesome name
int eight = 8;
Obj1.nine = &eight;
Obj Obj2 = Obj1; //Another Awesome name
então Obj1
s de Obj2
de nine
e irá apontar para o mesmo 8
, mas eles compartilham o mesmo ponteiro? Ou seja:.
int Necronine = 9;
Obj1.nine = &Necronine;
Obj2.nine == ???
vai Obj2
do ponto nine
para Necronine
, ou vai continuar apontando para 8
?
Solução
irá apontar nove de Obj2 para Necronine, ou ele permanecerá apontando para 8?
Ele permanecerá apontando para 8. Quando esta linha é executada:
Obj Obj2 = Obj1; // cada objeto tem seu próprio ponteiro
o value(copy)
de obj1.nine
é copiado para obj2.nine
e é isso.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow