编译器警告(等级 1)C4374

“function1”:接口方法不会由非虚拟方法“function2”来实现

编译器应在方法定义中找到 virtual 关键字。

下面的示例生成 C4374:

// C4374.cpp
// compile with: /clr /W1 /c /WX
public interface class I {
   void f();
};

public ref struct B {
   void f() {
      System::Console::WriteLine("B::f()");
   }
};

public ref struct C {
   virtual void f() {
      System::Console::WriteLine("C::f()");
   }
};

public ref struct D : B, I {};   // C4374
public ref struct E : C, I {};   // OK