分享方式:


編譯器警告 C4484

'override_function':符合基底 ref 類別方法 'base_class_function',但未標示為 'virtual'、'new' 或 'override';假設為 'new' (而非 'virtual')

使用 /clr 編譯時,編譯器不會隱含覆寫基類函式,這表示函式會在 vtable 中取得新的位置。 若要解決,請明確指定函式是否為覆寫。

如需詳細資訊,請參閱

C4484 一律會發出為錯誤。 使用警告 pragma 來隱藏 C4484。

範例

下列範例會產生 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 {}
};