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