Teilen über


Compilerwarnung (Stufe 4, aus) C4435

"derived_class": Das Objektlayout unter /vd2 "ändert sich aufgrund der virtuellen Basis "base_class"

Bemerkungen

Diese Warnung ist standardmäßig deaktiviert. Weitere Informationen finden Sie unter Compiler Warnings That Are Off by Default.

Unter der Standardkompilierungsoption von /vd1 hat die abgeleitete Klasse kein vtordisp-Feld für die angegebene virtuelle Basis. Wenn /vd2 oder #pragma vtordisp(2) in Kraft ist, ist ein vtordisp Feld vorhanden und ändert das Objektlayout. Dieser Unterschied 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 (Bauverschiebungen deaktivieren)