Kompilatorvarning (nivå 4, av) C4435

"derived_class": Objektlayouten under /vd2 ändras på grund av den virtuella basen "base_class"

Anmärkningar

Den här varningen är inaktiverad som standard. Mer information finns i Kompilatorvarningar som är inaktiverade som standard.

Under standardkompileringsalternativet för /vd1har vtordisp den härledda klassen inget fält för den angivna virtuella basen. Om /vd2 eller #pragma vtordisp(2) är i kraft finns ett vtordisp fält som ändrar objektlayouten. Den här skillnaden kan leda till problem med binär kompatibilitet om interagerande moduler kompileras med olika vtordisp inställningar.

Example

I följande exempel genereras C4435.

// C4435.cpp
// compile with: /c /W4
#pragma warning(default : 4435)
class A
{
public:
    virtual ~A() {}
};

class B : public virtual A  // C4435
{};

Se även

vtordisp
/vd (Inaktivera konstruktionsförskjutningar)