Wie werden Objekte gespeichert, die im Speicher in C++?

Wie werden Objekte gespeichert, die im Speicher in C++?

Für eine reguläre Klasse wie

class Object
    {
public:
    int i1;
    int i2;
    char i3;
    int i4;
private:
    };

Wird ein pointer-Objekt wie ein array verwendet werden kann, um Zugang i1 wie folgt?

((Object*)&myObject)[0] === i1?

Andere Fragen auf, SO scheinen nahezulegen, dass durch die Umwandlung einer Struktur zu einem Zeiger auf das erste Mitglied für POD-Typen. Wie ist diese unterschiedliche Klassen mit Konstruktoren, wenn überhaupt?
In welcher Weise unterscheidet es sich für die nicht-POD-Typen?

Edit:

In Erinnerung daher würde die obige Klasse angelegt werden, wie die folgenden?

[i1 - 4bytes][i2 - 4bytes][i3 - 1byte][padding - 3bytes][i4 - 4bytes]
Sie sind wahrscheinlich direkt über der Polsterung, solange int ist 4 Byte breit, und char 1 byte breit.

InformationsquelleAutor Dynite | 2009-01-01

Schreibe einen Kommentar