Aracılığıyla paylaş


Sanal İşlevi Mühürleme

Sanal işlevi mühürleyen sözdizimi C++ için Yönetilen Uzantılardan Visual C++ 2010'a değişmiştir.

__sealed anahtar sözcüğü Yönetilen Uzantılarda ya kendinden sonraki türetmeye izin vermeyen başvuru türlerini değiştirmede (bkz. Yönetilen Sınıf Türü Bildirimi), ya da türetilmiş bir sınıfta kendinden sonra gelen yöntem geçersiz kılmayı izin vermeyen sanal işlevi değiştirmede kullanılır. Örneğin:

__gc class base { public: virtual void f(); };
__gc class derived : public base {
public:
   __sealed void f();
};

Bu örnekte, derived::f() base::f() örneğini, işlev prototipinin tam olarak eşleşmesinden dolayı geçersiz kılar. __sealed anahtar sözcüğü, türetilen sınıftan devralınan sonraki sınıfın derived::f() için geçersiz kılma sağlayamayacağını gösterir.

Yeni sözdiziminde, sealed daha önce izin verildiği gibi fiili işlev prototipinden önce herhangi bir yerde olmasındansa, imzadan sonra yerleştirilir. Ek olarak, sealed kullanımı virtual anahtar sözcüğünün de açık kullanımını gerektirir. Yani, yukarıdaki derived'ın doğru çevirisi aşağıdaki gibidir:

ref class derived: public base {
public:
   virtual void f() override sealed;
};

virtual anahtar sözcüğünün olmaması bu örnekte hatayla sonuçlanır. Yeni sözdiziminde, abstract bağlamsal anahtar sözcüğü saf sanal işlevi belirtmek amacıyla =0 yerine kullanılabilir. Bu Yönetilen Uzantılarda desteklenmiyordu. Örneğin:

__gc class base { public: virtual void f()=0; };

şu şekilde yeniden yazılabilir

ref class base { public: virtual void f() abstract; };

Ayrıca bkz.

Başvuru

sealed

Kavramlar

Sınıfta veya Arayüzde Üye Bildirimleri