/vmm
, , /vms
/vmv
(Allgemeine Vertretung)
Wird verwendet, wenn /vmg
sie als Darstellungsmethode ausgewählt wird. Diese Optionen geben das Vererbungsmodell der noch nicht gefundenen Klassendefinition an.
Syntax
/vmm
/vms
/vmv
Optionen
/vmm
Gibt die allgemeinste Darstellung eines Zeigers auf ein Element einer Klasse als ein Element an, das mehrere Vererbung verwendet.
Das entsprechende Vererbungsstichwort und -argument #pragma pointers_to_members
lautet multiple_inheritance
.
Diese Darstellung ist größer als die für die einzelne Vererbung erforderliche.
Wenn Sie einen Zeiger auf ein Element einer Klasse verwenden /vmm
und deklarieren, die über ein virtuelles Vererbungsmodell verfügt, generiert der Compiler einen Fehler.
/vms
Gibt die allgemeinste Darstellung eines Zeigers auf ein Element einer Klasse als ein Element an, das entweder keine Vererbung oder einzelne Vererbung verwendet. Das entsprechende Vererbungsstichwort und -argument #pragma pointers_to_members
lautet single_inheritance
.
Diese Option generiert die kleinste mögliche Darstellung eines Zeigers auf ein Element einer Klasse.
Wenn Sie einen Zeiger auf ein Element einer Klasse verwenden /vms
und deklarieren, die über ein mehrfaches oder virtuelles Vererbungsmodell verfügt, generiert der Compiler einen Fehler.
/vmv
Gibt die allgemeinste Darstellung eines Zeigers auf ein Element einer Klasse als ein Element an, das die virtuelle Vererbung verwendet. Diese Zeigerdarstellung verursacht niemals einen Fehler und ist der Standardwert.
Das entsprechende Vererbungsstichwort und -argument #pragma pointers_to_members
lautet virtual_inheritance
.
Für diese Option ist ein größerer Zeiger und mehr Code erforderlich, um den Zeiger als die anderen Optionen zu interpretieren.
Hinweise
In Visual Studio 2019 und früheren Versionen verwendet Microsoft unterschiedliche Darstellungen (unterschiedlicher Größen) für Zeiger-zu-Member-Typen. Zeiger auf Elemente von Klassen ohne Vererbung oder einzelne Vererbung weisen die kleinste Darstellung auf. Zeiger auf Elemente von Klassen mit mehreren Vererbungen sind größer. Zeiger auf Elemente von Klassen mit virtueller Vererbung sind die größte. Wenn kein Darstellungsmodell für den Compiler angegeben wird, wird standardmäßig die größte, allgemeinste Darstellung verwendet.
Wenn Sie eine dieser Vererbungsmodelloptionen angeben, wird dieses Modell für alle Zeiger auf Klassenmmber verwendet, unabhängig vom Vererbungstyp oder unabhängig davon, ob Sie den Zeiger vor oder nach der Klasse deklarieren. Wenn Sie immer Single-Vererbungsklassen verwenden, können Sie die Codegröße reduzieren, indem Sie sie kompilieren /vms
. Wenn Sie jedoch den allgemeinsten Fall (auf Kosten der größten Datendarstellung) verwenden möchten, kompilieren Sie es mit /vmv
.
So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).
Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.
Geben Sie die Compileroption im Feld "Zusätzliche Optionen " ein.
So legen Sie diese Compileroption programmgesteuert fest
- Siehe AdditionalOptions.
Siehe auch
/vmb
, /vmg
(Representation-Methode)
MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile