Bu yazıda, C++ programlamasında kalıtım kavramını tartışacağız. C++'da friend fonksiyonu kavramını çalışma örnekleri ile açıklayacağız.
Neden Miras?
Kalıtım, başka bir sınıftan veya temel sınıftan yeni bir sınıf veya türetilmiş sınıf oluşturmaya izin verir. Türetilmiş sınıf veya alt sınıf, ana sınıfın veya temel sınıfın tüm özelliklerine sahip olacaktır. Kodu kalıtım yardımı ile yeniden kullanabiliriz.
Miras Türü
Farklı miras türleri vardır:
- Basit/Tek Kalıtım
- Hiyerarşik Kalıtım
- Çok Düzeyli Kalıtım
- Çoklu Kalıtım
Bu yazıda sadece basit/tek kalıtımı ele alacağız.
Örnek 1:
Şimdi, C'deki kalıtım kavramını anlamak için örnek bir programa bakalım++. Bir temel sınıf tanımladık ve ondan sonra başka bir sınıf türettik. Bu nedenle, türetilmiş sınıf, temel sınıftan özelliklere (üyeler ve işlevler) sahip olacaktır.
#Dahil etmekad alanı std kullanarak;
sınıf Temel_Sınıf
halka açık:
int i;
geçersiz ekran()
cout << "Display of Base Class " << i << endl;
;
sınıf Derived_Class:genel Base_Class
halka açık:
geçersiz gösteri()
cout << "Show of Derived Class" << endl;
;
int ana()
Derived_Class dc;
DC.ben = 100;
DC.Görüntüle();
DC.göstermek();
0 döndür;
Örnek 2:
Bu, C'deki başka bir kalıtım örneğidir++. Bu örnekte, türetilmiş bir sınıf nesnesi oluşturulduğunda yapıcıların nasıl çağrıldığını göreceğiz.
Aşağıda görebileceğiniz gibi, iki temel sınıf kurucu ve üç türetilmiş sınıf kurucu tanımladık. Aşağıdaki çıktıdan, türetilmiş sınıf kurucusu çağrılmadan önce temel sınıf kurucusunun çağrıldığını açıkça fark edebilirsiniz.
#Dahil etmek#Dahil etmek
ad alanı std kullanarak;
sınıf Temel_Sınıf
halka açık:
Temel_Sınıf()
cout << "Base_Class - No Parameters" << endl;
Temel_Sınıf(int x)
cout << "Base_Class - Parameters : " << x << endl;
;
sınıf Derived_Class:genel Base_Class
halka açık:
Türetilmiş sınıf()
cout << "Derived_Class - No Parameters" << endl;
Derived_Class(int y)
cout << "Derived_Class - Parameters : " << y << endl;
Derived_Class(int x,int y):Base_Class(x)
cout << "Param of Derived_Class : " << y << endl;
;
int ana()
Derived_Class d(7,19);
Örnek 3:
Bu örnekte, türetilmiş sınıf nesnelerinin nasıl kullanılabileceğini göreceğiz.
Gördüğünüz gibi, tanımlanmış iki sınıf var: Rectangle_Class ve Cube_Class. Rectangle_Class, türetilmiş sınıfın, i.e., Cube_Class türetilmiştir. Bu nedenle, özellikleri Rectangle_Class'tan Cube_Class'a miras alıyoruz.
Ayrıca, genel erişim kontrolü ile Cube_Class'ı devraldığımızı fark edebilirsiniz. Bu, türetilmiş sınıfın, temel sınıfın özel olmayan tüm üyelerine erişebileceği anlamına gelir.
Türetilmiş sınıfın bir nesnesini ilan ettik ve ardından temel sınıftan yöntemleri çağırdık, i.e., setLength() ve setBreadth().
#Dahil etmekad alanı std kullanarak;
class Rectangle_Class
özel:
int uzunluk;
int genişlik;
halka açık:
Rectangle_Class();
Rectangle_Class(int l,int b);
Rectangle_Class(Rectangle_Class &r);
int getLength()
dönüş uzunluğu;
int Genişlik()
dönüş genişliği;
void setLength(int l);
geçersiz setBreadth(int b);
int alan();
;
class Cube_Class:genel Rectangle_Class
özel:
int yükseklik;
halka açık:
Küp_Sınıfı(int h)
yükseklik=h;
int getHeight()
dönüş yüksekliği;
void setHeight(int h)
yükseklik=h;
int hacim()
getLength()*getBreadth()*height döndür;
;
Dikdörtgen_Sınıfı::Dikdörtgen_Sınıfı()
uzunluk=1;
genişlik=1;
Rectangle_Class::Rectangle_Class(int l,int b)
uzunluk=l;
genişlik=b;
Rectangle_Class::Rectangle_Class(Rectangle_Class & r)
uzunluk=r.uzunluk;
genişlik=r.genişlik;
void Rectangle_Class::setLength(int l)
uzunluk=l;
void Rectangle_Class::setBreadth(int b)
genişlik=b;
int Dikdörtgen_Sınıfı::alan()
dönüş uzunluğu*genişlik;
int ana()
Küp_Sınıfı c(8);
c.setUzunluk(12);
c.setBreadth(9);
cout<<"Volume is "<
Sonuç:
Bu yazımda C de Kalıtım kavramını anlattım++. C++, "çoklu kalıtım" (i.e., özellikleri birden çok temel sınıftan veya üst sınıftan devralma). Ancak, daha basit hale getirmek için burada yalnızca tek mirası dikkate aldım. C++ programlamasında kalıtımı nasıl kullanabileceğimizi ve kodu yeniden nasıl kullanabileceğimizi açıklamak için üç çalışma örneği gösterdim. Üstelik bu, C'nin çok kullanışlı bir özelliğidir++.