编译器警告(等级 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(禁用构造置换)