Funksiya – a’zolariga oddiygina murojaat orqali amalga oshiriluvchi xabarlar
Download 36.14 Kb.
|
1 2
Bog'liqdasturlash maruza
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:
{ } 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:
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< 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"< Talabalar; s.set_s(); s.display_s(); qaytish 0;} Chiqish:
0 t 0 Download 36.14 Kb. Do'stlaringiz bilan baham: |
1 2
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling