Avviso del compilatore (livello 4) C4435
'classe1': il layout dell'oggetto in /vd2 verrà modificato a causa della base virtuale '%$S'
Per impostazione predefinita, questo avviso non è attivo. Per altre informazioni, vedere Avvisi del compilatore disattivati per impostazione predefinita .
Nell'opzione di compilazione predefinita di /vd1, la classe derivata non ha un campo vtordisp
per la base virtuale indicata. Se /vd2 o #pragma vtordisp(2)
è attivo, verrà visualizzato un campo vtordisp
, modificando il layout dell'oggetto. Questo può causare problemi di compatibilità binaria se i moduli di interazione sono compilati con impostazioni vtordisp
diverse.
Esempio
L'esempio seguente genera l'errore C4435.
// C4435.cpp
// compile with: /c /W4
#pragma warning(default : 4435)
class A
{
public:
virtual ~A() {}
};
class B : public virtual A // C4435
{};