Miras temelleri
- C++ kursu
- Orta seviye
- Ders 13/116
- 5 dk
Türetme (:) ile bir sınıftan miras almayı öğrenirsin.
Miras temelleri
C++'ta miras alma (inheritance), bir sınıfın başka bir sınıfın üyelerini devralmasıdır. Devralan sınıfa türetilmiş sınıf (derived class), devralınan sınıfa temel sınıf (base class) denir. İki nokta ve erişim belirleyici ile yazılır.
Örnek: class Dog : public Animal { };. Burada Dog, Animal'dan miras alır. Dog bir Animal'ın tüm public üyelerine sahiptir ve kendi üyelerini de ekleyebilir. Bu, kod tekrarını azaltır: ortak davranış Animal'da bir kez yazılır, Dog, Cat gibi sınıflar onu devralır.
Üye devralma
Türetilmiş sınıf, temel sınıfın public ve protected üyelerini devralır. private üyeler devralınmaz; yalnız temel sınıfın kendisi erişebilir. Türetilmiş sınıf bu üyelere temel sınıfın üye fonksiyonları aracılığıyla dolaylı olarak ulaşabilir.
Örnek: Animal'da protected: std::string name; varsa, Dog bunu doğrudan kullanabilir: name = "Karabaş";. Ama private olsaydı Dog erişemezdi; Animal'ın bir getName() fonksiyonu gerekirdi. Bu yüzden miras için protected sık kullanılır.
Uygulama Dog sınıfını Animal'dan türet
Animal sınıfını tanımla: public: altında void breathe() { std::cout << "Nefes"; } üye fonksiyonu. Sonra class Dog : public Animal { }; ile Dog'u türet. main içinde Dog d; oluştur ve d.breathe() çağır.
Başlangıç kodu
#include <iostream>
// Animal sınıfını ve Dog türevini tanımla
int main() {
// Dog örneği oluştur ve breathe çağır
return 0;
}Örnek çözüm
#include <iostream>
class Animal {
public:
void breathe() {
std::cout << "Nefes";
}
};
class Dog : public Animal {
};
int main() {
Dog d;
d.breathe();
return 0;
}Beklenen çıktı
Nefes
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 class Dog : public Animal { }; satırında Animal ne demektir?
class Dog : public Animal { };- Dog'un üye değişkeni
- Dog'un yapıcı metodu
- Dog'un temel sınıfı Doğru cevap
- Dog'un arkadaş sınıfı
Açıklama: Animal, Dog'un miras aldığı temel sınıftır.
2 Miras sözdizimini tamamla
class Dog ____ public Animal { };
class Dog : public Animal { };
Açıklama: İki nokta miras bağıntısını başlatır.
3 Terimi rolüne eşle
| Kavram | Anlamı |
|---|---|
Animal |
Temel sınıf |
Dog |
Türetilmiş sınıf |
public |
Miras erişim türü |
: |
Miris bağıntısı |