Freigeben über


Compilerwarnung (Stufe 4) C4435

"Klasse1": Objektlayout unter /vd2 wird aufgrund der virtuellen Basisklasse "Klasse2"

Diese Warnung ist standardmäßig deaktiviert. Weitere Informationen finden Sie unter Standardmäßig deaktivierte Compilerwarnungen.

unter dem Standard kompilieren Sie Option von /vd1, die abgeleitete Klasse verfügt über kein Feld vtordisp für die angegebene virtuelle Basisklasse. Wenn /vd2 oder #pragma vtordisp(2) wirksam ist, ist ein vtordisp Feld das vorhanden und ändert das Objektlayout. Dies kann zu Problemen binärer Kompatibilität führen, wenn Module durch, werden kompiliert mit verschiedenen vtordisp Einstellungen.

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

Referenz

vtordisp

/vd (Konstruktionsverschiebungen deaktivieren)