“derived_class”:由于虚拟基础“
/vd2”,下的对象布局将发生更改
注解
默认情况下,此警告处于关闭状态。 有关详细信息,请参阅 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
{};