Compilerwarnung C4484

Aktualisiert: November 2007

Fehlermeldung

'Überschreibungsfunktion': Stimmt mit der 'Basisklassenfunktion'-Basismethode der Verweisklasse überein, ist jedoch nicht als 'new' oder 'override' markiert; 'new' (und 'virtual') wird angenommen.
'override_function' : matches base ref class method 'base_class_function', but is not marked 'virtual', 'new' or 'override'; 'new' (and not 'virtual') is assumed

Beim Kompilieren mit /clr wird die Basisklassenfunktion nicht implizit vom Compiler überschrieben. Dies hat zur Folge, dass der Funktion in der Vtable ein neuer Slot zugewiesen wird. Um das Problem zu beheben, geben Sie explizit an, ob es sich bei einer Funktion um eine Überschreibungsfunktion handelt.

Weitere Informationen finden Sie unter folgenden Themen:

C4484 wird immer als Fehler ausgegeben. Verwenden Sie das warning-Pragma, um C4484 zu unterdrücken.

Beispiel

Im folgenden Beispiel wird C4484 generiert.

// C4484.cpp
// compile with: /clr
ref struct A {
   virtual void Test() {}
};

ref struct B : A {
   void Test() {}   // C4484
};

// OK
ref struct C {
   virtual void Test() {}
   virtual void Test2() {}
};

ref struct D : C {
   virtual void Test() new {}
   virtual void Test2() override {}
};