- Tiplerin Kapsüllenmesi ve Genişletilebilirliği
- Kalıtım
- Polimorfizm
- Aşırı Yükleme
- Sanal Fonksiyonlar
- Bir Sınıfın Statik Elemanları
- Fonksiyon Şablonları
- Şablon avantajları
- Soyut Sınıflar
Soyut Sınıflar ve Saf Sanal Fonksiyonlar
Soyut sınıflar jenerik yapılar oluşturmak için kullanılır. Bu şekilde daha çok özelleştirilmiş türetik sınıfların yazılabilmesi sağlanır. Soyut sınıflar sadece başka sınıflar için temel sınıf olarak kullanılabilir. Bu nedenle soyut sınıf tipini kullanarak nesne oluşturmak olanaksızdır.
İçeriğinde en az bir saf sanal fonksiyon barındıran sınıflara soyut sınıf denir. Soyut sınıflardan türetilen tüm sınıflar temel sınıfın tüm saf sanal fonksiyonlarını kullanmalıdır, aksi durumda bu sınıflar da soyut sınıf olurlar.
. CAnimal sınıfını örnek verelim. Bu sınıf sadece bazı genel fonksiyonları sağlar – CAnimal tipli nesneler pratik kullanım için fazla geneldir. Bu da CAnimal'ı soyut sınıflar için iyi bir örnek yapar:
class CAnimal |
Burada Sound() fonksiyonu bir saf sanal fonksiyondur çünkü saf sanal fonksiyon belirteci PURE (=0) ile bildirilmiştir.
Saf sanal fonksiyonlar sadece PURE belirteci ayarlandığı için sanal fonksiyondur: (=NULL) veya (=0). Soyut sınıf bildirimi ve kullanımı için bir örnek:
class CAnimal
|
Soyut sınıflar üzerindeki kısıtlamalar
Bir soyut sınıfın yapıcı fonksiyonunun bir saf sanal fonksiyonu çağırması durumunda (doğrudan veya dolaylı olarak) sonuç tanımsızdır.
//+------------------------------------------------------------------+
|
Ama soyut sınıflardaki yapıcı ve yıkıcılar diğer fonksiyonları çağırabilirler.