Avertissement du compilateur (niveau 1) C4526

'function' : la fonction membre statique ne peut pas remplacer la fonction virtuelle 'fonction virtuelle’override ignorée, la fonction virtuelle sera masquée

La fonction membre statique répond aux critères pour remplacer la fonction virtuelle, ce qui rend la fonction membre virtuelle et statique.

Le code suivant génère l’erreur 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 );
};

Voici les correctifs possibles :

  • Si la fonction a été conçue pour remplacer la fonction virtuelle de classe de base, supprimez le spécificateur statique.

  • Si la fonction était destinée à être une fonction membre statique, renommez-la afin qu’elle ne soit pas en conflit avec la fonction virtuelle de classe de base.