Vi fəsil. C++ dilində proqramlaşdırma


Varis siniflər, onların təyini



Yüklə 1,02 Mb.
səhifə55/74
tarix04.01.2023
ölçüsü1,02 Mb.
#121980
1   ...   51   52   53   54   55   56   57   58   ...   74
Alqoritmik dillər(C kitab) (10)

6.43.Varis siniflər, onların təyini
Varislik-elə bir mexanizmdir ki, bu mexanizm vasitəsi ilə bir sinifin xassələri digər sinifdə istifadə olunur. Varislik mexanizmindən istifadə etməklə siniflərin ierarxiyasını qurmaq olar. Varis sinfə malik olan sinif baza sinif adlanır. Baza sinifdən alınan siniflər törəmə və ya varis siniflər adlanır. Varislik prosesi baza sinfin qurulmasından başlayır. Baza sinfi bu sinfin törəmə siniflərinin hamısı üçün ümumi olan xassələrə malikdir. Törəmə sinifləri bu ümumi xassələrdən əlavə onlara aid olan əlavə xassələrə də malik olurlar.
Baza sinfin varisi olan sinfin təsviri forması aşağıdaki kimidir:
class varis_sinfin_adı: müraciət spesifikatoru_
baza_sinfin_adı{
- - - - - -
};
Müraciət spesifikatoru aşağıdaki işçi sözlərdən biri ola bilər:
public(açıq), private(qapalı) və ya protected(qorunan)
Varis sinfin təyin olunmasına aid aşağıdaki misala baxaq. Əvvəlcə baza sinfin təsvirinə baxaq:
#include
using namespace std;
class B{
int i;
public:
void set_i (int n);
int get_i ( );
};
İndi varis sinfi təsvir edək:
class D: public B{
int j;
public:
void set_j (int n);
int mul ( );
};

Burada D-sinfi B-sinfinin varisidir və B-nin bütün komponentlərindən D-də istifadə etmək olar. Varis sinfin elan olunmasında public sözü onu göstərir ki, B-nin bütün qapalı elementləri D üçün də qapalıdır, B-nin bütün açıq elementləri D üçün də açıqdır.

Varis siniflərin elementlərinə müraciət edilməsi
B D-siniflərindən istifadə etməklə onların elementlərinə müraciət edilməsi qaydasına baxaq.

//Bu hissədə yuxarıda göstəriln və siniflərinin təsviri verilir.


//Baza sinifdəki i-yə qiymət verilməsi
void B::set_i (int n)
{
i=n;
}
//Baza sinifdən i-nin qiymətinin qaytarılması
int B::get_i ( )
{return i;
}
//Varis sinifdə j-yə qiymət verilməsi
void D::set_j (int n)
{
j=n;
}
//Baza sinfindən i-nin, varis sinifdən j-nın qiymətinin qaytarılması
int D::mul ( )


{
//varis sinif baza sinfin funksiyasına müraciət edə bilər
return j*get_i ( );
}
int main ( )
{ D ob;
ob.set_i (10); //Baza sinifdə i-nin yükləməsi
ob.set_j (4); //Varis sinifdə j-nın yüklənməsi
cout <
return 0;
}
Nəticədə 40 ədədi alınar.
Göründüyü kimi, get_i ( ) funksiyası B-baza sinfinə aid olmasına baxmayaraq ona D-dən müraciət etmək olar. Çünki B-nin açıq üzvü D-nin də açıq üzvüdür. Mul ( ) funksiyası birbaşa i-yə müraciət edə bilmir. Çünki B-nin qapalı üzvü D-üçün də qapalıdır. Ona görə də mul ( ) funksiyası i-yə get_i ( ) funksiyası vasitəsi ilə müraciət edir.


Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   51   52   53   54   55   56   57   58   ...   74




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin