编译器警告 C4484
“override_function”:匹配 ref 基类方法“base_class_function”,但没有标记为“virtual”、“new”或“override”;假定为“new”(而不是“virtual”)
使用 /clr 进行编译时,编译器不会隐式重写基类函数,这意味着该函数将在 vtable 中获得一个新槽。 若要解决此问题,请显式指定函数是否为替代。
有关详细信息,请参阅:
始终发出 C4484 错误。 使用 warning pragma 来禁止 C4484。
示例
以下示例生成 C4484。
// C4484.cpp
// compile with: /clr
ref struct A {
virtual void Test() {}
};
ref struct B : A {
void Test() {} // C4484
};
// OK
ref struct C {
virtual void Test() {}
virtual void Test2() {}
};
ref struct D : C {
virtual void Test() new {}
virtual void Test2() override {}
};
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈