컴파일러 경고(수준 4) C4435
'class1': 가상 기본 'class2'(으)로 인해 /vd2의 개체 레이아웃이 변경됩니다.
기본적으로 이 경고는 해제되어 있습니다. 자세한 내용은 기본적으로 해제되어 있는 컴파일러 경고 를 참조하세요.
/vd1의 기본 컴파일 옵션으로 파생된 클래스는 표시된 가상 기본 항목에 대해 vtordisp
필드를 포함하지 않습니다. /vd2 또는 #pragma vtordisp(2)
가 사용된 경우, vtordisp
필드가 제공되어 개체 레이아웃을 변경합니다. 그 결과 상호 작용 모듈을 다른 vtordisp
설정으로 컴파일할 경우 바이너리 호환성 문제가 발생할 수 있습니다.
예시
다음 샘플에서는 C4435를 생성합니다.
// C4435.cpp
// compile with: /c /W4
#pragma warning(default : 4435)
class A
{
public:
virtual ~A() {}
};
class B : public virtual A // C4435
{};