Share via


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

'class1': z důvodu virtuální base 'class2' se změní rozložení objektů v /vd2

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 kompilace /vd1 odvozená třída nemá vtordisp pole pro uvedenou virtuální základnu. Pokud je /vd2 nebo #pragma vtordisp(2) je v platnosti, vtordisp bude pole přítomno a změní rozložení objektu. To může vést k problémům s binární kompatibilitou při kompilaci modulů s různými vtordisp nastaveními.

Příklad

Následující ukázka 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ázání přesunutí konstrukcí)