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