Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 4, vypnuto) C4435

'derived_class': Rozložení objektu se /vd2 změní z důvodu virtuální základny base_class

Poznámky

Toto upozornění je ve výchozím nastavení vypnuté. Další informace najdete v tématu Upozornění kompilátoru, která jsou ve výchozím nastavení vypnutá.

V rámci výchozí možnosti /vd1kompilace odvozená třída nemá vtordisp pole pro uvedenou virtuální základnu. Pokud /vd2 nebo #pragma vtordisp(2) je v platnosti, vtordisp je pole přítomno a mění rozložení objektu. Tento rozdíl může vést k problémům s binární kompatibilitou, pokud jsou interakce modulů zkompilovány s různými vtordisp nastaveními.

Příklad

Následující příklad vygeneruje C4435.

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

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

Viz také

vtordisp
/vd (Zakázat posuny konstrukce)