Question

Je sais que si je fais quelque chose comme ça:

class Obj
{
public:
    int* nine;
};

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

puis Obj1 et Obj2 , neuf pointera sur le même 8 , mais ils partagent le même pointeur? I.e.:

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

neuf du neuf de Obj2 pointe-t-il sur Necronine , ou restera-t-il pointé sur 8 ?

Était-ce utile?

La solution

  

les neuf points d’Obj2 vont-ils à la Necronine,   ou restera-t-il pointé à 8?

Il restera pointé sur 8. Lorsque cette ligne est exécutée: Obj Obj2 = Obj1; // chaque objet a son propre pointeur la valeur (copie) de obj1.nine est copiée dans obj2.nine et c'est tout.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top