Vererbungsschlüsselworte
Microsoft-spezifisch
class [__single_inheritance] class-name;
class [__multiple_inheritance] class-name;
class [__virtual_inheritance] class-name;
Dabei gilt:
- Klassenname
Der Name der Klasse, die deklariert wird.
C++ lässt sich um einen Zeiger auf einen Klassenmember vor der Definition der Klasse zu deklarieren.Beispiele:
class S;
int S::*p;
Im Code oben wird p deklariert, um einen Zeiger auf den ganzzahligen Member der Klasse S sein.class S ist jedoch noch nicht in diesem Code definiert wurden. Er ist nur deklariert.Wenn der Compiler einen solchen Zeigers erkennt, muss er eine allgemeine Darstellung des Zeigers ausführen.Die Größe der Darstellung ist abhängig vom angegebenen Vererbungsmodell.Es gibt vier Möglichkeiten, ein Vererbungsmodell für den Compiler anzugeben:
Klicken Sie unter Zeiger-zu-Member-DarstellungIDE
Geben Sie in der Befehlszeile unter Verwendung des Schalters /vmg
Verwenden des pointers_to_members Pragmas
Mithilfe der Schlüsselwörter __single_inheritance, Vererbung und __multiple_inheritance__virtual_inheritance.Dieses Verfahren steuert das Vererbungsmodell auf einer einzelnen Klasse Basis.
Hinweis Wenn Sie stets einen Zeiger auf einen Member einer Klasse deklarieren, nachdem Sie die Klasse definiert haben, ist es nicht erforderlich, um alle Optionen zu verwenden.
Das Deklarieren eines Zeigers auf einen Member einer Klasse vor der Klassendefinition wirkt sich auf die Größe und die Geschwindigkeit der erstellten ausführbaren Datei.Je komplexer die Vererbung von einer Klasse, desto größer die Anzahl von Bytes erforderlich, um einen Zeiger auf einen Member der Klasse darzustellen und desto größer der Code benötigt, um den Mauszeiger zu interpretieren.Einzelne Vererbung, komplexe gering ist und virtuelle Vererbung ist der größte komplex.
Wenn das obige Beispiel geändert wird:
class __single_inheritance S;
int S::*p;
unabhängig von Befehlszeilenoptionen oder Pragmas verwenden Zeiger auf Member von class S die kleinstmögliche Darstellung.
Hinweis |
---|
Dieselbe Vorwärtsdeklaration einer Klasse Zeiger-zu Member Darstellung sollte in jeder Übersetzungseinheit auftreten, die Zeiger auf Member dieser Klasse deklariert. Die Deklaration sollte vor den Zeiger auf Member deklariert werden. |
Microsoft ENDES bestimmten