Klasse ohne Daten Member und Member-Funktion dieser Art der Klasse wird als leere Klasse bezeichnet. Die Größe des Objekts der leeren Klasse ist immer 1 Byte.
Wenn wir Objekt einer Klasse zu dieser Zeit erstellen, erhält Objekt immer 3 Eigenschaften, d.h.nichts ist
- Staat
- Verhalten
- Identität
Wenn wir Objekt der leeren Klasse zu diesem Zeitpunkt Staat dieses Objekts erstellen. Das Verhalten dieses Objekts ist ebenfalls nichts, aber der Compiler weist diesem Objekt eine eindeutige Adresse zu. Der Speicher im Computer ist immer in Form von Bytes organisiert, und der minimale verfügbare Speicher an der Adresse der Objektadresse ist 1 Byte. Aus diesem Grund beträgt die Größe des Objekts der leeren Klasse 1 Byte.
Es gibt ein Dummy-Platzhalterelement, dessen Größe ein Byte beträgt. Da für ein Array von Test [10] jedes Objekt eine eindeutige Adresse haben sollte. – legends2k
Eine interessante Optimierung ist jedoch die 'Empty Base Optimization', das heißt, wenn Sie von einer leeren Basisklasse erben (kein Attribut, keine virtuellen Methoden), dann wird Ihre Klassengröße nicht wachsen. Es gibt eine Reihe von (anderen) Bedingungen, aber es erklärt, warum in einigen Situationen privat Prädikate erben. –
[ähnliche Frage 1] (http://stackoverflow.com/questions/1626446) und [ähnliche Frage 2] (http://stackoverflow.com/questions/621616/). – Lazer