Dela via


Kompilatorvarning (nivå 4) C4487

"derived_class_function" : matchar den ärvda icke-virtuella metoden "base_class_function", men markeras inte uttryckligen som "ny"

Anmärkningar

En funktion i en härledd klass har samma signatur som en icke-virtuell basklassfunktion. C4487 påminner dig om att den härledda klassfunktionen inte åsidosätter basklassfunktionen. Markera uttryckligen den härledda klassfunktionen som new för att lösa den här varningen.

För mer information, se ny (nytt fack i vtable).

Example

I följande exempel genereras C4487.

// C4487.cpp
// compile with: /W4 /clr
using namespace System;
public ref struct B {
   void f() { Console::WriteLine("in B::f"); }
   void g() { Console::WriteLine("in B::g"); }
};

public ref struct D : B {
   void f() { Console::WriteLine("in D::f"); }   // C4487
   void g() new { Console::WriteLine("in D::g"); }   // OK
};

int main() {
   B ^ a = gcnew D;
   // will call base class functions
   a->f();
   a->g();
}