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
{};