Advertencia del compilador (nivel 4) C4435
"class1": la distribución de objetos de /vd2 cambiará debido a la base virtual "class2"
De forma predeterminada, esta advertencia está desactivada. Vea Advertencias del compilador desactivadas de forma predeterminada para más información.
En la opción de compilación predeterminada de /vd1, la clase derivada no tiene un campo vtordisp
para la base virtual indicada. Si /vd2 o #pragma vtordisp(2)
están implementados, un campo vtordisp
estará presente, lo que cambiará el diseño del objeto. Esto puede provocar problemas de compatibilidad binaria si los módulos que interactúan se compilan con diferentes valores de vtordisp
.
Ejemplo
El ejemplo siguiente genera el error C4435.
// C4435.cpp
// compile with: /c /W4
#pragma warning(default : 4435)
class A
{
public:
virtual ~A() {}
};
class B : public virtual A // C4435
{};
Consulte también
vtordisp
/vd (Deshabilitar desplazamientos de constructores)