다음을 통해 공유


vtordisp

C++ 전용

숨겨진된 vtordisp 생성/소멸 치환 멤버를 제어합니다.

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

매개 변수

  • push
    Vtordisp 설정과 내부 컴파일러 스택에 푸시하고 vtordisp 설정을 새 설정 n.경우 n 지정 하지 않으면 현재 vtordisp 설정이 변경 되지 않습니다.

  • pop
    내부 컴파일러 스택에서 최상위 레코드를 제거 하 고 제거 값으로 vtordisp 설정을 복원 합니다.

  • n
    Vtordisp 설정에 대 한 새 값을 지정합니다.가능한 값 0, 1 또는 2, /vd0, /vd1, /vd2 컴파일러 옵션에 해당 됩니다.자세한 내용은 /vd(생성 치환 비활성화)를 참조하십시오.

  • on
    #pragma vtordisp(1)와 같습니다.

  • off
    #pragma vtordisp(0)와 같습니다.

설명

vtordisp Pragma 가상 기본을 사용 하 여 코드에만 적용 됩니다.파생된 클래스가 가상 기본 클래스에서 상속 되는 가상 함수 재정의 생성자 또는 소멸자를 경우 파생된 클래스의 가상 기본 클래스는 컴파일러에 대 한 포인터 수 소개 함수 사용 추가 호출 하는 경우 숨겨진 vtordisp 필드와 가상 기본 클래스에 있습니다.

vtordisp Pragma 뒤 클래스의 레이아웃에 영향을 줍니다./Vd0, /vd1, /vd2 옵션 같은 동작 전체 모듈을 지정합니다.지정 0 또는 off 는 숨겨진 억제 vtordisp 멤버.해제 vtordisp 경우 가상 클래스의 생성자와 소멸자를 호출할 가능성이 없습니다 가리키는 개체에서 작동 하는 전용의 this 포인터.

지정 1 또는 on, 기본적으로 숨김 있습니다 vtordisp 필요 되는 멤버입니다.

지정 2 는 숨겨진 있습니다 vtordisp 가상 함수가 모든 가상 기본에 대 한 멤버.vtordisp(2)올바른 성능을 위해 해야 할 수도 있습니다 dynamic_cast 에서 부분적으로 생성 된 개체입니다.자세한 내용은 컴파일러 경고(수준 1) C4436를 참조하십시오.

#pragma vtordisp()를 인수 없이 vtordisp 설정을 초기 설정으로 복원 합니다.

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

END C++ 전용

참고 항목

참조

Pragma 지시문과 __Pragma 키워드