Mühazirə14: C++-da varislik və virtual funksiyalar


Nəticədə təmiz, aydın və genişlənə bilən kod əldə adirik!



Yüklə 0,59 Mb.
səhifə2/9
tarix19.06.2022
ölçüsü0,59 Mb.
#61805
növüMühazirə
1   2   3   4   5   6   7   8   9
Varislik.Virtual funk.

    Bu səhifədəki naviqasiya:
  • Person
Nəticədə təmiz, aydın və genişlənə bilən kod əldə adirik!
C++ da bu tip varisliyin realizasiya nümunəsi sxemi belədir:
class Person
{
... .. ...
};

class MathsTeacher : public Person


{
... .. ...
};
class Footballer : public Person
{
.... .. ...
};
Yuxarıdakı sxemə görə Person baza sinif, MathsTeacher, FootballerBusinessman isə törəmə siniflərdirlər və baza sinifinin bütün verilən və funksiyalarından istifadə icazəsinə malikdirlər.
Varislik konsepsiyasından istifadə edərək oyun personajları yaradan proqram koduna baxaq:
#include
#include
using namespace std;

class Person


{
public:
string profession;
int age;

//Person(): profession("Peshesiz "), age(16) { }


//Qeyd. yuxarıdakı yazılış üslubu da düzgündür(rast gəlinir)!

Person(){profession="Peshesiz"; age=16;}


void display()
{
cout << "Peshemin adi: " << profession << endl;
cout << "Yashim: " << age << endl;
walk();
talk();
}
void walk() { cout << "Geze bilirem." << endl; }
void talk() { cout << "Danisha bilirem." << endl; }
};
-------------Varis(törəmə) siniflər------------------
// MathsTeacher sinifi Person –un (baza sinifin) törəməsidir(varisidir).
class MathsTeacher : public Person
{
public:
void teachMaths() { cout << "Riyaziyyatdan ders deyirem." << endl; }
};
--------------------------------------------
// Footballer sinifi Person –un (baza sinifin) törəməsidir(varisidir).
class Footballer : public Person
{
public:
void playFootball() { cout << "Futbol oynayiram." << endl; }
};
------------------------------------------------
int main()
{
MathsTeacher teacher;
teacher.profession = "Muellim";
teacher.age = 23;
teacher.display();
teacher.teachMaths();
cout << endl;
Footballer footballer, footballer1;
footballer.profession = "Futbolchu";
footballer.age = 19;
footballer.display();
footballer.playFootball();
cout << endl;
footballer1.display();
return 0;
}

Yuxarıdakı proqramda Person sinifinin iki üzv-dəyişəni (üzv-veriləni, data member) var - profession və age. Həmçinin üç üzv-funksiyası var- walk() , talk() və display(). MathsTeacherFootballer bu funksiya və verilənlərin hamısından istifadə icazəsnə malikdirlər.
Bundan başqa bu iki varis sinif özəl üzv-funksiyalara da malikdirlər: teachMaths()playFootball() (uyğun olaraq). Bu funksiyalar yalnız təyin olunduqları siniflərin (MathsTeacherFootballer) obyektləri tərəfindən istifadə oluna bilinirlər.
main() funksiyasında üç obyekt elan olunur. Bu obyektlər Person və öz sinif verilənləri və funksiyalarına müraciət etmək imkanı əldə edirlər.


Yüklə 0,59 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin