Freigeben über


Compilerwarnung (Ebene 1) C4526

'Function' : Statische Memberfunktion kann die virtuelle Funktion "virtuelle Funktion" nicht außer Kraft setzen, ignoriert, virtuelle Funktion wird ausgeblendet.

Die statische Memberfunktion erfüllt die Kriterien, um die virtuelle Funktion außer Kraft zu setzen, wodurch die Memberfunktion sowohl virtuell als auch statisch wird.

Der folgende Code generiert 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 );
};

Es folgen mögliche Korrekturen:

  • Wenn die Funktion die virtuelle Basisklasse außer Kraft setzen soll, entfernen Sie den statischen Bezeichner.

  • Wenn die Funktion eine statische Memberfunktion sein soll, benennen Sie sie um, damit sie nicht mit der virtuellen Basisklasse in Konflikt steht.