/vmm, , /vms/vmv (Reprezentacja ogólnego przeznaczenia)

Używany, gdy /vmg jest wybierany jako metoda reprezentacji. Te opcje wskazują model dziedziczenia definicji klasy, która nie została jeszcze napotkana.

Składnia

/vmm
/vms
/vmv

Opcje

/vmm
Określa najbardziej ogólną reprezentację wskaźnika do składowej klasy jako elementu, który używa wielu dziedziczenia.

Odpowiednie słowo kluczowe i argument dziedziczenia to multiple_inheritance#pragma pointers_to_members .

Ta reprezentacja jest większa niż ta wymagana dla pojedynczego dziedziczenia.

Jeśli używasz /vmm i deklarujesz wskaźnik do składowej klasy, która ma wirtualny model dziedziczenia, kompilator generuje błąd.

/vms
Określa najbardziej ogólną reprezentację wskaźnika do składowej klasy jako elementu, który używa dziedziczenia ani pojedynczego dziedziczenia. Odpowiednie słowo kluczowe i argument dziedziczenia to single_inheritance#pragma pointers_to_members .

Ta opcja generuje najmniejszą możliwą reprezentację wskaźnika do składowej klasy.

Jeśli używasz /vms i deklarujesz wskaźnik do składowej klasy, która ma model dziedziczenia wielokrotnego lub wirtualnego, kompilator generuje błąd.

/vmv
Określa najbardziej ogólną reprezentację wskaźnika do elementu członkowskiego klasy jako elementu, który używa dziedziczenia wirtualnego. Ta reprezentacja wskaźnika nigdy nie powoduje błędu i jest wartością domyślną.

Odpowiednie słowo kluczowe i argument dziedziczenia to virtual_inheritance#pragma pointers_to_members .

Ta opcja wymaga większego wskaźnika i większego kodu w celu zinterpretowania wskaźnika niż inne opcje.

Uwagi

W programie Visual Studio 2019 i starszych wersjach firma Microsoft używa różnych reprezentacji (o różnych rozmiarach) dla typów wskaźników do składowych. Wskaźniki do składowych klas, które nie mają dziedziczenia ani pojedynczego dziedziczenia mają najmniejszą reprezentację. Wskaźniki do składowych klas, które mają wiele dziedziczenia, są większe. Wskaźniki do składowych klas, które mają dziedziczenie wirtualne, są największe. Jeśli dla kompilatora nie określono żadnego modelu reprezentacji, domyślną wartością jest użycie największej, najbardziej ogólnej reprezentacji.

Po określeniu jednej z tych opcji modelu dziedziczenia model ten jest używany dla wszystkich wskaźników do składowych klasy, bez względu na typ dziedziczenia lub czy zadeklarować wskaźnik przed lub po klasie. Jeśli zawsze używasz klas pojedynczego dziedziczenia, możesz zmniejszyć rozmiar kodu, kompilując za pomocą /vmspolecenia . Jeśli jednak chcesz użyć najbardziej ogólnego przypadku (kosztem największej reprezentacji danych), skompiluj element za pomocą /vmvpolecenia .

Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio

  1. Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).

  2. Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.

  3. Wprowadź opcję kompilatora w polu Dodatkowe opcje .

Aby programowo ustawić tę opcję kompilatora

Zobacz też

/vmb, /vmg (metoda Representation)
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC