Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 1) C4526

"function": funkcja statycznej składowej nie może zastąpić funkcji wirtualnej "funkcja wirtualna" ignorowana, funkcja wirtualna będzie ukryta

Funkcja statycznego elementu członkowskiego spełnia kryteria zastąpienia funkcji wirtualnej, co sprawia, że funkcja składowa jest zarówno wirtualna, jak i statyczna.

Poniższy kod generuje kod 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 );
};

Poniżej przedstawiono możliwe poprawki:

  • Jeśli funkcja miała zastąpić funkcję wirtualną klasy bazowej, usuń specyfikator statyczny.

  • Jeśli funkcja miała być statyczną funkcją składową, zmień jej nazwę, aby nie powodować konfliktu z funkcją wirtualną klasy bazowej.