次の方法で共有


コンパイラ エラー C3764

'override_function': 基底クラス メソッド 'base_class_function' をオーバーライドできません

コンパイラが不正な形式のオーバーライドを検出しました。 たとえば、基底クラス関数は virtual ではありませんでした。 詳細は、概要を参照してください。

次の例では C3764 が生成されます。

// C3764.cpp
// compile with: /clr /c
public ref struct A {
   void g(int);
   virtual void h(int);
};

public ref struct B : A {
   virtual void g(int) override {}   // C3764
   virtual void h(int) override {}   // OK
};

C3764 は、基底クラス メソッドが明示的に指定され、名前がオーバーライドされた場合にも発生する可能性があります。 次の例では C3764 が生成されます。

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

ref struct B : public A {
   virtual void Test() override {}
   virtual void Test2() = A::Test {}   // C3764
};