Udostępnij za pośrednictwem


vtordisp

Szczególne C++

Kontroluje dodanie Członkowskie przemieszczenie budowy/zniszczenie vtordisp ukryte.

#pragma vtordisp([push,] n)
#pragma vtordisp(pop)
#pragma vtordisp()
#pragma vtordisp([push,] {on | off})

Parametry

  • push
    Wypycha bieżące ustawienie vtordisp stosu wewnętrznego kompilator i ustawia nowe ustawienie vtordisp n.Jeśli n nie jest określony, bieżące ustawienie vtordisp nie ulega zmianie.

  • pop
    Usuwa rekord top stosu wewnętrznego kompilatora i przywraca ustawienia vtordisp wartość usunięte.

  • n
    Określa nową wartość ustawienia vtordisp.Możliwe wartości to 0, 1 lub 2, odpowiadający /vd0, /vd1 i /vd2 opcje kompilatora.Aby uzyskać więcej informacji, zobacz /VD (Wyłącz budowy przesunięcia).

  • on
    Równoważne #pragma vtordisp(1).

  • off
    Równoważne #pragma vtordisp(0).

Uwagi

vtordisp Pragma ma zastosowanie tylko do kodu korzystającego z wirtualnego podstaw.Jeśli klasy pochodne zastępuje wirtualnego funkcji, która dziedziczy z klasy bazowej wirtualnych i jeśli Konstruktor lub destruktora dla klasy pochodnej wywołuje tego za pomocą funkcji wskaźnik do wirtualnej klasy bazowej, kompilator może wprowadzić dodatkowe ukryte vtordisp pól do klas z podstaw wirtualnych.

vtordisp Pragma wpływa na układ klas, które po nim następują./Vd0, /vd1 i /vd2 opcje można określić takie samo dla modułów kompletne.Określanie 0 lub off pomija ukryty vtordisp członków.Wyłącz vtordisp , tylko jeżeli istnieje możliwość konstruktory i destruktory klasy wywołania wirtualnej funkcji na obiekcie wskazywanej przez this wskaźnik.

Określanie 1 lub on, domyślnie włącza ukryty vtordisp członków, jeżeli są niezbędne.

Określanie 2 umożliwia ukryty vtordisp elementów dla wszystkich wirtualnych podstaw funkcje wirtualnych.vtordisp(2)może być konieczne do zapewnienia prawidłowego funkcjonowania dynamic_cast na obiekt częściowo wykonane.Aby uzyskać więcej informacji, zobacz Ostrzeżenie kompilatora (poziom 1) C4436.

#pragma vtordisp(), bez argumentów ustawienie vtordisp przywraca ustawienia początkowe.

#pragma vtordisp(push, 2)
class GetReal : virtual public VBase { ... };
#pragma vtordisp(pop)

KONIEC określonego języka C++

Zobacz też

Informacje

Dyrektywy pragma i __Pragma słowa kluczowego