Aviso do compilador (nível 4) C4435
'class1' : layout do objeto em /vd2 será alterado devido à base virtual 'class2'
Esse aviso está desativado por padrão. Confira Avisos do compilador desativados por padrão para obter mais informações.
Na opção de compilação padrão de /vd1, a classe derivada não tem um campo vtordisp
para a base virtual indicada. Se /vd2 ou #pragma vtordisp(2)
estiver em vigor, um campo vtordisp
estará presente, alterando o layout do objeto. Isso pode levar a problemas de compatibilidade binária se módulos de interação forem compilados com configurações vtordisp
diferentes.
Exemplo
O exemplo a seguir gera o aviso C4435.
// C4435.cpp
// compile with: /c /W4
#pragma warning(default : 4435)
class A
{
public:
virtual ~A() {}
};
class B : public virtual A // C4435
{};