编译器警告(等级 1)C4526

“function”:静态成员函数无法重载虚函数“virtual function”忽略,将隐藏虚函数

静态成员函数满足替代虚拟函数的条件,该函数使成员函数同时成为虚拟函数和静态函数。

以下代码生成 C4526:

// C4526.cpp
// compile with: /W1 /c
// C4526 expected
struct myStruct1 {
   virtual void __stdcall func( int ) = 0;
};

struct myStruct2: public myStruct1 {
   static void __stdcall func( int );
};

以下是可能的修复:

  • 如果函数旨在重写基类虚拟函数,请删除静态说明符。

  • 如果函数是静态成员函数,请将其重命名,使其与基类虚拟函数不冲突。