2016-08-09 8 views
3

Ich erstelle eine Hash-Funktion auf der Grundlage der Byte-Werte der Objekte. Ich möchte wissen, ob die Bytes von Objekt a halten b oder werden sie eine Referenz (Zeiger) halten?Wie Referenzen im Speicher behandelt werden

+0

Siehe [diese Liste empfohlener Bücher zu C++] (http://stackoverflow.com/q/388242/253056). –

+0

Objekte haben keine Bytewerte. Zwei verschiedene Byte-Arrays können durchaus den gleichen Objektwert darstellen. Wie Referenzen dargestellt werden, ist Implementierung definiert. –

Antwort

1

Wie Sie A::_b als eine Referenz deklariert haben, wird es eine Referenz "halten". Daher enthält das Objekt a nicht die Daten von b, wenn Sie a byteweise untersuchen.


Übrigens haben Sie vergessen, die Adresse-of-Operator in Ihrer Besetzung zu verwenden.

+1

... jeder Zugriff auf '_b' (nach Name) ist jedoch so, als ob Sie auf den Referenten zugreifen würden, daher spielt dies für eine Hash-Funktion keine Rolle. –

+0

und für das gleiche Objekt wie b, werden die Bytes von A immer gleich sein? – mkmostafa

+0

@mkmostafa Das hängt davon ab, wie Referenzen vom Compiler implementiert werden. –

Verwandte Themen