override Tanımlayıcısı
Bir temel sınıftaki bir sanal işlevi geçersiz kılan üye işlevleri atamak için override anahtar sözcüğünü kullanabilirsiniz.
Sözdizimi
function-declaration override;
Açıklamalar
geçersiz kılma , bağlama duyarlıdır ve yalnızca üye işlev bildiriminden sonra kullanıldığında özel bir anlamı vardır; aksi takdirde ayrılmış anahtar sözcük değildir.
Örnek
Kodunuzda yanlışlıkla devralma davranışını önlemeye yardımcı olması için geçersiz kılmayı kullanın. Aşağıdaki örnekte, geçersiz kılma kullanılmadan türetilmiş sınıfın üye işlevi davranışının amaçlanmamış olabileceği durumlar gösterilmektedir. Derleyici bu kod için herhangi bir hata yaymaz.
class BaseClass
{
virtual void funcA();
virtual void funcB() const;
virtual void funcC(int = 0);
void funcD();
};
class DerivedClass: public BaseClass
{
virtual void funcA(); // ok, works as intended
virtual void funcB(); // DerivedClass::funcB() is non-const, so it does not
// override BaseClass::funcB() const and it is a new member function
virtual void funcC(double = 0.0); // DerivedClass::funcC(double) has a different
// parameter type than BaseClass::funcC(int), so
// DerivedClass::funcC(double) is a new member function
};
Geçersiz kılma kullandığınızda, derleyici sessizce yeni üye işlevleri oluşturmak yerine hatalar oluşturur.
class BaseClass
{
virtual void funcA();
virtual void funcB() const;
virtual void funcC(int = 0);
void funcD();
};
class DerivedClass: public BaseClass
{
virtual void funcA() override; // ok
virtual void funcB() override; // compiler error: DerivedClass::funcB() does not
// override BaseClass::funcB() const
virtual void funcC( double = 0.0 ) override; // compiler error:
// DerivedClass::funcC(double) does not
// override BaseClass::funcC(int)
void funcD() override; // compiler error: DerivedClass::funcD() does not
// override the non-virtual BaseClass::funcD()
};
İşlevlerin geçersiz kılınamayacağını ve sınıfların devralınamayacağını belirtmek için son anahtar sözcüğünü kullanın.
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin