コンパイラの警告 (レベル 4) C4435
" class1 ": /vd2 の下のオブジェクトのレイアウトは、仮想基本 " class2 " が原因で変更します
既定では、この警告はオフに設定されています。詳細については、「既定で無効になっているコンパイラの警告」を参照してください。
/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
{};