编译器警告(等级 4)C4435

“class1”: /vd2 下的对象布局将因虚拟基“class2”而更改

默认情况下,此警告处于关闭状态。 请参阅 默认情况下处于关闭状态的编译器警告 了解详细信息。

在 /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(禁用构造置换)