Pieczętowanie funkcji wirtualnej
Składnia funkcji wirtualnych plombowania zmienił się z rozszerzeń zarządzanych języka C++ do Visual C++.
__sealed Użyć słowa kluczowego w zarządzanych rozszerzeń do modyfikowania albo typ odwołania, brak zezwolenia kolejnych wyprowadzenie z niej (zobacz Deklaracja zarządzanego typu klasy), i do modyfikowania funkcji wirtualnych, brak zezwolenia kolejnych przesłanianie metody w klasie pochodnej.Na przykład:
__gc class base { public: virtual void f(); };
__gc class derived : public base {
public:
__sealed void f();
};
W tym przykładzie derived::f() zastępuje base::f() wystąpienie oparte na dokładne dopasowanie prototypu funkcji.__sealed Słowa kluczowego wskazuje, że kolejne odziedziczonej z klasy pochodne klasy nie może dostarczyć nadpisanie derived::f().
W nowych składni sealed jest umieszczony po podpis, a nie jest dozwolone pojawiają się gdziekolwiek przed prototyp rzeczywista funkcja była poprzednio dozwolona.Ponadto, użycie sealed wymaga użycia jawnego virtual jak również słowa kluczowego.Oznacza to, że poprawne tłumaczenie derivedpowyżej, jest następująca:
ref class derived: public base {
public:
virtual void f() override sealed;
};
Przy braku virtual słowa kluczowego w tym wystąpieniu powoduje wystąpienie błędu.W nowych składni kontekstowych słowa kluczowego abstract może być używany zamiast =0 do wskazania czystego funkcji wirtualnych.To nie jest obsługiwana w ramach rozszerzeń zarządzanych.Na przykład:
__gc class base { public: virtual void f()=0; };
można zapisać jako
ref class base { public: virtual void f() abstract; };
Zobacz też
Informacje
Koncepcje
Deklaracje członków w obrębie klasy lub interfejsu (C++/CLI)