Поделиться через


Ошибка компилятора 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
};