Udostępnij za pośrednictwem


Ostrzeżenie kompilatora C4485

"override_function": pasuje do metody klasy bazowej ref "base_class_function", ale nie jest oznaczona jako "nowa" ani "przesłonięć"; Zakłada się, że "nowe" (i "wirtualne")

Przesłonięcia metod dostępu, z lub bez słowa kluczowego virtual , funkcji dostępu klasy bazowej, ale override specyfikator lub new nie był częścią zastępowania podpisu funkcji. Dodaj specyfikator oroverride, new aby rozwiązać to ostrzeżenie.

Aby uzyskać więcej informacji, zobacz zastępowanie i nowe (nowe miejsce w tabeli wirtualnej).

C4485 jest zawsze wystawiany jako błąd. Użyj pragma ostrzeżenia, aby pominąć C4485.

Przykład

Poniższy przykład generuje kod C4485

// C4485.cpp
// compile with: /clr
delegate void Del();

ref struct A {
   virtual event Del ^E;
};

ref struct B : A {
   virtual event Del ^E;   // C4485
};

ref struct C : B {
   virtual event Del ^E {
      void raise() override {}
      void add(Del ^) override {}
      void remove(Del^) override {}
   }
};