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 Obj1s 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?

Foi útil?

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
scroll top