Haben flache Kopien Aktie Zeiger? (C ++)
-
22-07-2019 - |
Frage
Ich weiß, wenn ich etwas tun, wie folgt aus:
class Obj
{
public:
int* nine;
};
Obj Obj1; //Awesome name
int eight = 8;
Obj1.nine = &eight;
Obj Obj2 = Obj1; //Another Awesome name
dann Obj1
ist und Obj2
des nine
s auf demselben 8
Punkt, aber werden sie die gleichen Zeiger teilen? Das heißt:.
int Necronine = 9;
Obj1.nine = &Necronine;
Obj2.nine == ???
wird Obj2
Punkt des nine
Necronine
, oder bleibt es bei 8
zeigen?
Lösung
wird Obj2 neun Punkt Necronine, oder bleibt es bei 8 zeigen?
Es bleibt bei 8 Hinweis Wenn diese Zeile ausgeführt wird:
Obj Obj2 = Obj1; // Jedes Objekt hat seinen eigenen Zeiger
die value(copy)
von obj1.nine
in obj2.nine
kopiert und das ist es.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow