Ostrzeżenie kompilatora (poziom 4) C4435
"class1": zmieni układ obiektu pod /vd2 ze względu na wirtualnych base "class2"
To ostrzeżenie jest domyślnie wyłączona.Aby uzyskać więcej informacji, zobacz Domyślnie wyłączone ostrzeżenia kompilatora.
W domyślnym skompilować opcja /vd1, klasa pochodna nie ma vtordisp dla wskazanego wirtualnej bazy pole. Jeśli /vd2 lub #pragma vtordisp(2) , vtordisp pole jest obecny, zmieniając układ obiektu. Może to prowadzić do problemów ze zgodnością binarne, jeśli oddziałujących na siebie moduły są zestawiane z różnymi vtordisp ustawienia.
Przykład
Poniższy przykład generuje C4435.
// C4435.cpp
// compile with: /c /W4
#pragma warning(default : 4435)
class A
{
public:
virtual ~A() {}
};
class B : public virtual A // C4435
{};