Freigeben über


pointers_to_members

C++-Besondere

Gibt an, ob ein Zeiger auf einen Klassenmember vor seiner zugeordneten Klassendefinition deklariert werden kann und verwendet wird, um die Größe des Zeigers und den Code zu steuern, um den Mauszeiger zu interpretieren müssen.

#pragma pointers_to_members( pointer-declaration, [most-general-representation] )

Hinweise

Sie können ein pointers_to_members Pragma in der Quelldatei als Alternative zur Verwendung der /vmx-Compileroptionen oder des Schlüsselwörter Vererbungplatzieren.

Das Zeiger Deklaration-Argument gibt an, ob Sie einen Zeiger auf einen Member vor oder nach der zugeordneten Funktionsdefinition deklariert wurden.Das Zeiger Deklaration-Argument ist eines der beiden folgenden Symbole:

Argument

Kommentare

full_generality

Generiert Code nonoptimal, manchmal als sicher.Verwenden Sie ggf. full_generality Zeiger auf einen Member deklariert werden, bevor die zugehörige Klassendefinition.Dieses Argument verwendet immer die Darstellung der Zeiger durch das Aussehen Höchst-allgemein-Argument angegeben wird.Entspricht /vmg.

best_case

Generiert Code mit optimalen sicher, CASE-Darstellung besten für alle Zeiger auf den Member.Vor dem Deklarieren eines Zeigers auf ein Member der Klasse erfordert die Definition der Klasse.Der Standardwert ist best_case.

Das Aussehen Höchst-allgemein-Argument gibt die kleinste Zeiger Darstellung angezeigt, die der Compiler sicher verwendet werden kann, um jeden Zeiger auf einen Member einer Klasse in einer Übersetzungseinheit zu verweisen.Das Argument kann einen der folgenden Werte sein:

Argument

Kommentare

single_inheritance

Die einfachste Darstellung ist mit Vererbung Zeiger auf eine Memberfunktion.Bewirkt einen Fehler, wenn das Vererbungsmodell einer Klassendefinition, für die ein Zeiger auf einen Member deklariert ist entweder ein oder mehrere virtuell ist.

multiple_inheritance

Die einfachste Darstellung ist die Mehrfachvererbung, Zeiger auf eine Memberfunktion.Bewirkt einen Fehler, wenn das Vererbungsmodell einer Klassendefinition, für die ein Zeiger auf einen Member deklariert wurde, virtuell ist.

virtual_inheritance

Die einfachste Darstellung ist Virtuell Vererbung Zeiger auf eine Memberfunktion.Bewirkt, dass nie einen Fehler.Dies ist das Standardformat Argument, wenn #pragma pointers_to_members (full_generality) verwendet wird.

WarnhinweisVorsicht

Wir melden Sie sich an, um das pointers_to_members Pragma nur für die Quellcodedatei, die beeinflussen möchten, und nur nach allen #include-Direktive eingefügt werden soll.Diese Vorgehensweise verringert das Risiko, dass das Pragma andere Dateien beeinflusst und dass Sie versehentlich mehrere Definitionen für die gleiche Variable, eine Funktion oder Klassennamen angeben.

Beispiel

//   Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )

Siehe auch

Referenz

Pragma-Direktiven und das __Pragma-Schlüsselwort