编译器警告(等级 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
{};
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈