Obyektga mo‘ljallangan dasturlash. An'anaviy dasturlash


Game sinfi tarkibida print() metodini e’lon qilish


Download 261.89 Kb.
bet4/7
Sana21.01.2023
Hajmi261.89 Kb.
#1106740
1   2   3   4   5   6   7
Bog'liq
Dasturlash mustaqil ish

Game sinfi tarkibida print() metodini e’lon qilish:

class Game


{
public:
string s_game;
int s_player;
int s_time;

void print() // funksiya-a’zoni aniqlash


{
cout << s_game << "/" << s_player << "/" << s_time;
}
};

Xuddi shu tarzda, struktura a'zolariga ham, sinf a'zolariga ham (o'zgaruvchilar va funksiyalarga) a'zo tanlash operatori (.) orqali kirish mumkin:


#include


using namespace std;
class Game
{
public:
string s_game;
int s_player;
int s_time;

void print() // funksiya-a'zoni aniqlash


{
cout <<"Game : "<< s_game <<" " <<"number of players : "<< s_player << " " <<"game time : "<< s_time;
} };

int main()


{
Game football { "football", 22 , 90 };
football.print(); // Game football obyektining print() metodini chaqirish uchun a'zo tanlash operatoridan foydalanish
return 0;
}

Dasturni bajarish natijasi:


Game : football number of players : 22 game time : 90


Sinf metodlari biroz boshqacha ishlaydi: barcha metod chaqiruvlari sinf obyekti bilan bog'lanishi kerak. football.print() ga murojaat qilganimizda, biz kompilyatorga football obyektining print() metodini chaqirishini aytamiz. print() metodining ta'rifini yana ko'rib chiqamiz: string s_game,


int s_player va int s_time aslida nimani nazarda tutadi? Ular tegishli today obyektiga murojaat qiladi (bu murojaat qiluvchining o'zi tomonidan belgilanadi).
Shuning uchun, football.print() ni chaqirganda, kompilyator quyidagicha izohlaydi:
string s_game;
int s_player;
int s_time;

Asosan, bog'langan obyekt bilvosita metodga o'tkaziladi. Shu sababli, u ko'pincha yopiq obyekt deb ataladi.


Tegishli darsda yashirin obyekt qanday metodga o'tishi haqida batafsil gaplashamiz.
A'zo o'zgaruvchilar uchun m_ (inglizcha "m" = "members" – a’zolar) prefiksidan foydalanish a'zolar o'zgaruvchilarini funktsiya parametrlari yoki sinf metodlari ichidagi lokal o'zgaruvchilardan ajratishga yordam beradi. Bu bir necha sabablarga ko'ra foydalidir:
Ikkinchidan, funksiya parametrlari yoki funksiya ichida e'lon qilingan lokal o'zgaruvchilardan farqli o'laroq, a'zo o'zgaruvchilar sinf ta'rifida e'lon qilinadi. Shuning uchun, agar biz m_ prefiksli o'zgaruvchining qanday e'lon qilinishini bilmoqchi bo'lsak, biz funksiya ichida emas, balki sinf ta'rifiga qarashimiz kerakligini tushunamiz.
Odatda dasturchilar sinf nomlarini katta harf bilan yozadilar.

#include


class University


{
public:
string u_name;
int f_number;
int s_number;
void print()
{
cout << "Universitet nomi : " << u_name <<
"\n Fakultetlar soni : " << f_number<<
"\nTalabalar soni : " << s_number ;
}
};
int main()
{
University Samdu { "Samarqand davlat universiteti", 18 , 30000 };
University Uzmu { “O’zbekiston milliy universiteti", 23 , 35000 };
Samdu.print();
cout<Uzmu.print();
return 0;
}
Dastur kodi :



Dasturni bajarish natijasi:





Universitet nomi : Samarqand davlat universiteti
Fakultetlar soni : 18
Talabalar soni : 30000
Universitet nomi : O'zbekiston milliy universiteti
Fakultetlar soni : 23
Talabalar soni : 35000


Download 261.89 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling