建議使用 Visual Studio 2017

編譯器警告 (層級 4) C4435

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

'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  
{};  

vtordisp
/vd (停用建構替代)

顯示: