编译器警告(级别 4,关闭) C4435

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
{};

另请参阅

vtordisp
/vd(禁用施工位移)