Compilerwarnung (Ebene 4) C4487
'derived_class_function': Gleicht die geerbte nicht virtuelle Methode "base_class_function" ab, ist jedoch nicht explizit als "neu" gekennzeichnet.
Eine Funktion in einer abgeleiteten Klasse weist dieselbe Signatur wie eine nicht virtuelle Basisklassenfunktion auf. C4487 erinnert Sie daran, dass die abgeleitete Klassenfunktion die Basisklassenfunktion nicht überschreibt. Kennzeichnen Sie die abgeleitete Klassenfunktion explizit, um new
diese Warnung zu beheben.
Weitere Informationen finden Sie unter "Neu" (neuer Steckplatz in vtable).For more information, see new slot in vtable.for more information, see new (new slot in vtable).
Beispiel
Im folgenden Beispiel wird C4487 generiert.
// 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();
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für