Beispiel:C++: pointer Vergleich der Basis vs abgeleitet von dem gleichen Objekt
class A{
int x;
};
class B{};
class C : public A, public B {};
C c;
A* a = &c;
B* b = &c;
, wenn I den Wert von & c und b überprüfen, sie unterschiedlich sind, weil b nach einem im Speicher ist, aber noch als ich bewerten & c == b, sie sind die gleichen, warum ist der Fall?
Sie haben unterschiedliche Werte, da sie auf verschiedene Teile desselben Objekts zeigen. Wenn Sie sie jedoch so konvertieren, dass sie auf denselben Typ verweisen, sind sie wieder identisch. –
Dieser Code wird nicht kompiliert. '& c' ist eine Referenz auf einen Zeiger, während' a' und 'b' Zeiger sind. –
Sorry Jungs, ich hatte zunächst c als Objekt, aber dann habe ich versucht, es ein Zeiger für die Klarstellung, aber vergessen, den Rest zu ändern .... – godlamp