Поделиться через


Предупреждение компилятора (уровень 1) C4526

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 );
};

Ниже приведены возможные исправления.

  • Если функция была предназначена для переопределения виртуальной функции базового класса, удалите статический описатель.

  • Если функция была предназначена для статической функции-члена, переименуйте ее, чтобы она не конфликтовала с виртуальной функцией базового класса.