Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
"derived_class": макет объекта в разделе
/vd2изменится из-за виртуальной базы "base_class"
Замечания
Это предупреждение отключено по умолчанию. Дополнительные сведения см. в разделе Compiler Warnings That Are Off by Default.
По умолчанию, при опции компиляции /vd1, производный класс не имеет поля vtordisp для указанной виртуальной базы. Если /vd2 или #pragma vtordisp(2) активен, присутствует поле vtordisp, которое изменяет макет объекта. Это различие может привести к проблемам совместимости двоичных файлов, если взаимодействующие модули компилируются с разными vtordisp параметрами.
Пример
В следующем примере создается C4435.
// C4435.cpp
// compile with: /c /W4
#pragma warning(default : 4435)
class A
{
public:
virtual ~A() {}
};
class B : public virtual A // C4435
{};