Freigeben über


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.

    HinweisHinweis

    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.

HinweisHinweis

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

Siehe auch

Referenz

C++-Schlüsselwörter