Funksiya – a’zolariga oddiygina murojaat orqali amalga oshiriluvchi xabarlar




Download 122,82 Kb.
bet2/2
Sana08.12.2023
Hajmi122,82 Kb.
#113934
1   2
Bog'liq
dasturlash maruza
qaydnoma (9), 1-Laboratoriya ishlanmasi, klo 2017 038, informatika fanini oqitishda innovatsion uslublarni ishlab chiqish va ularni dars jarayoniga tadbiq etish, 107909, Ахбоот хати, 1 mustaqil ped amaliyot topshiriq.2023 (1), -3Jnn8ZYZ010kdrz9YmHyexkh1fUGFQu (1), alijon001
obyektlar ro‘yxati> qismi shart emas. Sinf obyektlari keyinchalik, zarurat bo‘yicha e’lon qilinishi mumkin. Garchi <sinf nomi> qismi ham majburiy bo‘lmasa ham, uning bo‘lgani ma’qul. Chunki <sinf nomi> berilganlar turining yangi nomi bo‘lib, uning yordamida shu sinf obyektlari aniqlanadi.
Sinf ichida e’lon qilingan funksiya va berilganlar shu sinf a’zolari hisobalandi. Sinf e’lonining ichida e’lon qilingan o‘zgaruvchilar berilgan-a’zolar, sinf ichida e’lon qilingan funksiyalar funksiya–a’zolar deyiladi.

Sinf obyektlariga murojaat


Odatda sinf tavsifida <obyektlar ro‘yxati> qismi shart emas. Sinf obyektlari keyinchalik, zarurat bo‘yicha e’lon qilinishi mumkin. Garchi <sinf nomi> qismi ham majburiy bo‘lmasa ham, uning bo‘lgani ma’qul. Chunki <sinf nomi> berilganlar turining yangi nomi bo‘lib, uning yordamida shu sinf obyektlari aniqlanadi.
Sinf ichida e’lon qilingan funksiya va berilganlar shu sinf a’zolari hisobalandi. Sinf e’lonining ichida e’lon qilingan o‘zgaruvchilar berilgan-a’zolar, sinf ichida e’lon qilingan funksiyalar funksiya–a’zolar deyiladi.
Masala




Merosdan foydalanib, biz funktsiyalarni uch marta emas, faqat bir marta yozishimiz kerak, chunki qolgan uchta sinfni asosiy sinfdan (Vehicle) meros qilib oldik.


C++ da merosni amalga oshirish: Asosiy sinfdan meros bo'lib qolgan kichik sinfni yaratish uchun biz quyidagi sintaksisga amal qilishimiz kerak.

Hosil bo'lgan sinflar: Hosil bo'lgan sinf asosiy sinfdan olingan sinf sifatida aniqlanadi.


Sintaksis:

sinf :


//tana }
Qayerda
class — yangi sinf yaratish uchun kalit so'z
derived_class_name - asosiy sinfni meros qilib oladigan yangi sinf nomi
kirish-spesifikatori - shaxsiy, ommaviy yoki himoyalangan. Agar hech biri belgilanmagan bo'lsa, PRIVATE sukut bo'yicha qabul qilinadi
base-class-name — asosiy sinf nomi
Eslatma: Olingan sinf shaxsiy ma'lumotlar a'zolariga kirish huquqini meros qilib olmaydi. Biroq, u o'sha sinf e'lon qilgan har qanday shaxsiy a'zolarni o'z ichiga olgan to'liq ota-ona ob'ektini meros qilib oladi.

Misol:
1. sinf ABC : xususiy XYZ //xususiy derivatsiya


{ }
2. ABC sinfi : ommaviy XYZ // ommaviy kelib chiqish
{ }
3. sinf ABC : himoyalangan XYZ // himoyalangan derivatsiya
{ }
4. ABC klassi: XYZ //sukut bo'yicha xususiy derivatsiya
{ }
Eslatma:
o Asosiy sinf olingan sinf tomonidan xususiy meros bo'lib qolganda, asosiy sinfning umumiy a'zolari hosila sinfning shaxsiy a'zolariga aylanadi va shuning uchun asosiy sinfning umumiy a'zolariga faqat olingan sinfning a'zo funktsiyalari orqali kirish mumkin. Ulardan olingan sinf ob'ektlariga kirish mumkin emas.
o Boshqa tomondan, asosiy sinf hosila sinf tomonidan ommaviy ravishda meros bo'lib qolganda, asosiy sinfning ochiq a'zolari ham hosila sinfning umumiy a'zolariga aylanadi. Shuning uchun, asosiy sinfning umumiy a'zolariga olingan sinf ob'ektlari, shuningdek, hosila sinfning a'zo funktsiyalari orqali kirish mumkin.

// Misol: sinf ichida argumentsiz a'zo funktsiyasini aniqlang


#include
Using namespace std ;
class odam{
int id;
belgi nomi[100];
public:
void set_p(){
cout<<"Idni kiriting:";
cin>>id;
fflush (stdin);
cout<<"Ismni kiriting:";
cin.get(ism,100);}
void display_p(){
cout<}};
class o'quvchi: xususiy shaxs{
char kursi[50];
int to'lovi;
public:
void set_s(){
set_p();
cout<<"Kurs nomini kiriting:";
fflush (stdin);
cin.getline (kurs, 50);
cout<<"Kurs to'lovini kiriting:";
cin>> to'lovi;}
void display_s(){
display_p();
cout<}};
main(){
Talabalar;
s.set_s();
s.display_s();
return 0;}

Chiqish:
Identifikatorni kiriting: 101


Ismni kiriting: Dev
Kurs nomini kiriting: GCS
Kurs to'lovini kiriting: 70000
101 Dev GCS 70000
// Misol: sinfdan tashqarida argumentsiz a'zo funktsiyasini aniqlang
#include
using namespace std ;
class odam{
int id;
char nomi[100];
public:
void set_p();
void display_p(); };
void Person::set_p(){
cout<<"Idni kiriting:";
cin>>id;
fflush (stdin);
cout<<"Ismni kiriting:";
cin.get(ism,100);}
void Person::display_p(){
cout<class o'quvchi: xususiy shaxs{
char kursi[50];
int to'lovi;
public:
void set_s();
void display_s();};
void Student::set_s(){
set_p();
cout<<"Kurs nomini kiriting:";
fflush (stdin);
cin.getline (kurs, 50);
cout<<"Kurs to'lovini kiriting:";
cin>> to'lovi;}
void Student::display_s(){
display_p();
cout<<"\t"<int(){
Talabalar;
s.set_s();
s.display_s();
qaytish 0;}

Chiqish:
Idni kiriting: Ismni kiriting: Kurs nomini kiriting: Kurs to'lovini kiriting:


0 t 0

Download 122,82 Kb.
1   2




Download 122,82 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Funksiya – a’zolariga oddiygina murojaat orqali amalga oshiriluvchi xabarlar

Download 122,82 Kb.