Share via


Upozornění kompilátoru C4484

"override_function" : odpovídá metodě základní třídy ref "base_class_function", ale není označena jako "virtual", "new" nebo "override"; Předpokládá se "new" (a ne "virtual").

Při kompilaci pomocí /clr kompilátor implicitně nepřepíše funkci základní třídy, což znamená, že funkce získá nový slot ve vtable. Pokud chcete problém vyřešit, explicitně určete, jestli je funkce přepsána.

Další informace naleznete v tématu:

C4484 se vždy vydává jako chyba. K potlačení C4484 použijte direktivu pragma upozornění .

Příklad

Následující ukázka vygeneruje C4484.

// 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 {}
};