Compilerwarnung (Ebene 4) C4435
'class1' : Das Objektlayout unter „/vd2“ wird aufgrund der virtuellen Basis 'class2' geändert.
Diese Warnung ist standardmäßig deaktiviert. Weitere Informationen finden Sie unter Standardmäßig deaktivierte Compilerwarnungen .
Unter der Standardkompilierungsoption von /vd1 verfügt die abgeleitete Klasse nicht über ein vtordisp
Feld für die angegebene virtuelle Basis. Wenn /vd2 oder #pragma vtordisp(2)
wirksam ist, wird ein vtordisp
Feld vorhanden, und das Objektlayout wird geändert. Dies kann zu Binären Kompatibilitätsproblemen führen, wenn interaktionsfähige Module mit unterschiedlichen vtordisp
Einstellungen kompiliert werden.
Beispiel
Im folgenden Beispiel wird C4435 generiert.
// C4435.cpp
// compile with: /c /W4
#pragma warning(default : 4435)
class A
{
public:
virtual ~A() {}
};
class B : public virtual A // C4435
{};