Freigeben über


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

Siehe auch

vtordisp
/vd (Konstruktionsverschiebungen deaktivieren)