Miras (Inheritance), var olan bir sınıftan farklı bir sınıf türeterek, türetilen bu yeni sınıfın ekstra özellikler alabilmesi olayıdır. Temel mantığı anlamak için şöyle bir örnek verebiliriz:
Akıllı telefonlar birçok özellikleri bakımından birbirinden ayrılabilirler. Fakat hepsinin bir temelde birleştirilerek bazı özelliklerinin aynı olduğu kabul edilebilir. Aşağıdaki görselimizi inceleyelim:
Görselde yer alan AkilliTelefon bir ana sınıf olarak temsil edilebilir. Barındırdığı özellikler hem IphoneX adındaki alt sınıfta hem de GalaxyS8 isimli alt sınıfta kullanılıyor. Öyleyse bu özellikleri her iki alt sınıf için yeniden girmek yerine AkilliTelefon sınıfından temin edebiliriz.
ÖRNEK
Bir fonksiyon oluşturalım ve bu fonksiyonumuz çember ve silindir'in alan, çevre ve hacim bilgilerini hesaplasın.
ÇÖZÜM
class Cember{
public:
double r;
Cember(){
r = 0;
}
Cember(double radius) {
r = radius;
}
double C_alan(){
return PI*r*r;
}
double C_cevre(){
return 2*PI*r;
}
};
class Silindir:Cember{
public:
double h;
Silindir(){
h = 0;
}
Silindir(double rad, double height):Cember(rad) {
h = height;
}
double S_alan(){
return h*C_cevre();
}
double S_hacim(){
return h*C_alan();
}
};
int main(){
Silindir X(5, 10);
cout << X.S_alan();
}
Birden Fazla Sınıf Dahil Etmek
Inheritance mantığında : ifadesinden sonra birden fazla sınıfı virgül ile ayırarak dahil edebiliriz:
class X{...};
class Y{...};
class Z: class X, class Y {
...
};