İrsilik
İrsilik (ing. inheritance, rus. наследование, türk. kalıtım) — obyekt-yönlü proqramlaşdırmada: müəyyən xassələrın sinifdən onun törəmələrinə verilməsi. Məsələn, əgər "tərəvəzlər" sinfinin "yaşıl" və "sarı" xarakteristikaları varsa, onların hər ikisi "tərəvəzlər" sinfinin törəmələrinə – bar, yarpaqlar, yeməlilər və s. veriləcək. Ümumi anlamda irsilik, müəyyən xassələrin ana proqramdan və ya prosesdən yerinə yetirilmək üçün çağrılan başqa modullara ötürülməsi prosesinə də aid edilir. Bu halda irsən alınmış xassələrə ana proqram mühitinin bir, yaxud bir neçə xassəsi və ya özəlliyi (məsələn, artıq açılmış fayllar) aid olur. Aşağıdakı nümunədə Form sinfindən "açıq-aşkar" ("publicly") irsən alınmış Circle sinfi verilib. Yeni Circle sinfi area atributunu təməl Form sinfindən irsən alıb (area atributu dolayı yolla Circle sinfinin atributudur), ancaq ona birbaşa müraciət edə bilməz. O bunu getArea və setArea funksiyaları vasitəsilə edir (bu funksiyalar təməl sinifdə public kimi elan olunub və törəmə sinifdə də belə qalırlar). Ancaq color atributu isə irsən public kimi alındığından, yeni sinif ona birbaşa müraciət edə bilər. Bax: BASE CLASS, ENCAPSULATION, OOP, POLYMORPHISM.
class Form {
private:
double area;
public:
int color;
double getArea(){
return this->area;
}
void setArea(double area){
this->area=area;
}
};
class Circle: public Form {
public:
double getRatio() {
double a;
a = getArea();
return sqrt(a/2*3.14);
}
void setRatio(double diameter) {
setArea(pow(diameter * 0.5, 2) * (3.14));
}
bool isDark() {
return color>10;
Ədəbiyyat
[redaktə | mənbəni redaktə et]- İsmayıl Calallı (Sadıqov), "İnformatika terminlərinin izahlı lüğəti", 2017, "Bakı" nəşriyyatı, 996 s.
Xarici keçidlər
[redaktə | mənbəni redaktə et]- http://www.open-std.org/jtc1/sc22/wg21
- http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009
- https://github.com/isocpp
- http://events.yandex.ru/events/yac/2011/talks/19
- http://www.artima.com/cppsource/cpp0x.html