0Pricing
C++ Academy · Ders

Tekli ve Çoklu Kalıtım

Tekli kalıtımla is-a ilişkilerini modelleyin ve çoklu kalıtımın sakıncalarını denetim altında tutun

Tekli ve Çoklu Kalıtım, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.

Kalıtım Nedir?

Kalıtım, bir sınıfın ( türetilmiş sınıf) başka bir sınıfı ( temel sınıf) yeniden kullanıp genişletmesini sağlar. “-dir” ilişkilerini modeller.

class Animal {
public:
    void breathe() { std::cout << "breathing\n"; }
};

class Dog : public Animal {
public:
    void bark() { std::cout << "Woof!\n"; }
};

Genel Kalıtım

“-dir” ilişkisini modellemek için public kullanın — bir Dog, Animal'dır. Üyeler, türetilmiş sınıfta erişim düzeylerini korur.

Korumalı ve Özel Kalıtım

protected ve private kalıtım, “şu kullanılarak gerçekleştirilir” ilişkisini modeller — nadiren kullanılır. Bu durumlarda bileşimi tercih edin.

Temel Sınıf Üyelerine Erişme

Türetilmiş sınıf, temel sınıfın tüm genel ve korumalı üyelerini doğrudan kullanabilir.

Dog d;
d.breathe();    // inherited from Animal
d.bark();        // own member

Oluşturucu Sırası

Temel sınıf oluşturucuları, türetilmiş sınıf oluşturucularından önce çalışır. Temel sınıfa bağımsız değişken geçirmek için üye başlatıcı listesini kullanın.

class Pet : public Animal {
    std::string name_;
public:
    Pet(std::string n) : Animal(), name_(std::move(n)) {}
};

Yok Edici Sırası

Yok ediciler ters sırayla çalışır — önce türetilmiş sınıf, sonra temel sınıf. Temel sınıf işaretçisi üzerinden silme yapıyorsanız temel sınıf yok edicilerini virtual yapın.

Çoklu Kalıtım

C++, bir sınıfın birden fazla temel sınıftan kalıtım almasına izin verir. Bunu ölçülü kullanın — tasarımı karmaşıklaştırır.

class Printable { public: virtual void print() = 0; };
class Serializable { public: virtual std::string serialize() = 0; };

class Document : public Printable, public Serializable {
    // implements both interfaces
};

Elmas Sorunu

İki temel sınıf ortak bir temel sınıfı paylaşıyorsa türetilmiş sınıf, bu temel sınıfın iki kopyasına sahip olur. Sanal kalıtımla çözün.

class A {};
class B : virtual public A {};
class C : virtual public A {};
class D : public B, public C {};   // D has ONE A, not two

Sanal Kalıtımın Maliyeti

Sanal temel sınıflar ek yük getirir — nesne başına fazladan bir işaretçi ve her temel sınıf üyesi erişiminde fazladan bir dolaylı erişim. Mümkün olduğunda kaçının.

Bileşim ve Kalıtım Karşılaştırması

Çoğu zaman “sahiptir” bileşimi, “-dir” kalıtımından daha basittir. Bir Car, bir Engine sahibidir — Car sınıfını Engine sınıfından türetmeyin.

class Engine { /* ... */ };
class Car {
    Engine engine_;       // composition
};

Arayüz Kalıtımı ve Gerçekleştirme Kalıtımı

İki yaygın kullanım:

  • Arayüz — bir sözleşmeyi yerine getirmek için yalnızca sanal işlevlerden oluşan bir temel sınıftan türetme
  • Gerçekleştirme — kodu yeniden kullanmak için türetme (CRTP, karışımlar)

Kalıtım Ne Zaman Kullanılmalı

Kalıtımı şu durumlarda kullanın:

  • Gerçek bir “-dir” ilişkisi varsa
  • Sanal işlevler aracılığıyla çalışma zamanı çok biçimliliğine ihtiyacınız varsa
  • Temel sınıf kalıtım için tasarlanmışsa

Hızlı Kontrol

Çoklu kalıtım kullanıldığında ortak bir temel sınıfın iki kopyasını hangi teknik önler?

Özet

Kalıtım, genel kalıtımla “-dir” ilişkilerini modeller. Çoklu kalıtıma izin verilir ancak elmas sorunu sanal kalıtım gerektirir. “Sahiptir” ilişkileri ve kod yeniden kullanımı için bileşimi tercih edin.

Sıkça Sorulan Sorular

“Tekli ve Çoklu Kalıtım” dersi ücretsiz mi?

Evet — “Tekli ve Çoklu Kalıtım” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.

“Tekli ve Çoklu Kalıtım” dersinde ne öğreneceğim?

Tekli kalıtımla is-a ilişkilerini modelleyin ve çoklu kalıtımın sakıncalarını denetim altında tutun C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C++ Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Tekli ve Çoklu Kalıtım” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Tekli ve Çoklu Kalıtım
  2. Sanal İşlevler ve vtable
  3. Soyut Sınıflar ve Saf Sanal Metotlar
  4. Kalıtım ve Bileşim Ödünleşimleri
← C++ Academy Sayfasına Dön