Udostępnij za pośrednictwem


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

Zobacz też

Informacje

vtordisp

/vd (Wyłącz przemieszczanie konstrukcji)