编译器警告(等级 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
{};