O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim vazirligi tоshkеnt dаvlаt iqtisоdiyot universitеti
Obyektlar massivlari. Sinf struktura kengaytmasi sifatida
Download 1.96 Mb. Pdf ko'rish
|
Obyektga yo`naltirilgan dasturlash tillari
5.4. Obyektlar massivlari. Sinf struktura kengaytmasi sifatida
Obyektlar aniqlangandan so‘ng shu obyektlarga ko‘rsatkichlar belgilash mumkin. Masalan: complex A(5.2,2.7); complex* PA=&A; Obyektning umumiy elementlariga murojaat uchun -> operatsiyani yoki ism almashtirish va nuqta operatsiyasidan foydalanish mumkin *PA.real() yoki PA->real; Agarda konkret obyektga ishlov berish uchun sinf a’zosi – funksiya chaqirilsa, unda shu funksiyaga obyektga belgilangan ko‘rsatkich avtomatik va ko‘rsatilmagan holda uzatiladi. Bu ko‘rsatqich this ismiga ega va x* this kabi har bir funksiya uchun ko‘rsatilmagan holda belgilanadi. Х sinfni ekvivalent ko‘rinishda shunday tavsiflash mumkin: class x { int m; public: int readm() { return this->m; } }; A’zolarga murojaat etishda this dan foydalanish ortiqcha. Asosan this bevosita ko‘rsatkichlar bilan manipulyatsiya qilish uchun a’zo funksiyalarini yaratilishida foydalaniladi. 53 Sinf kompanentasi yagona bo‘lib va hamma yaratilgan obyektlar uchun umumiy bulishi uchun uni statik element sifatida ta’riflash ya’ni static atributi orqali ta’riflash lozimdir. Obyektlarni yaratishda sinf statik ma’lumotlari takrorlanmaydi, ya’ni har bir statik komponentlar birdan-bir ko‘rinishda mavjud. Statik elementlarga murojat qilish uchun oldin initsializatsiya kilinishi lozim. Inizializatsiya quyidagicha amalga oshiriladi: Masalan: int complex : : count = 0; Bu taklifni sinfni aniqlashdan so‘ng global soxada joylashtirish lozim. Faqatgina sinf statistik ma’lumotlarini initsializatsiyalashda u xotiraga ega bo‘ladi va unga murojaat etish mumkin. Sinf statik ma’lumotlarga faqatgina obyekt ismi orqali murojaat etish mumkin. Masalan: complex a; a.count=5; Lekin, statik komponetlarga sinf obyekti aniqlanmagan holda ham murojaat etish mumkin. Statistik komponentlarga nafaqat obyekt ismi, balki sinf ismi orqali ham murojaat etish mumkin. Masalan complex:: count=5; Lekin shunday murojaat faqatgina public komponentlarga tegishli. private statik komponentlarga tashqaridan murojaat etishda funksiya – statik komponentlardan foydalaniladi. Bu funksiyalarni sinf ismi orqali chaqirish mumkin. Misol. #include class TPoint { 54 double x,y; static int N; // statik maydon: nuqtalar soni public: TPoint(double x1 = 0.0,double y1 = 0.0){N++; x = x1; y = y1;} static int& count(){return N;} // statik komponenta-funksiya }; int TPoint : : N = 0; //statik maydon initsializatsiyasi void main(void) {TPoint A(1.0,2.0); TPoint B(4.0,5.0); TPoint C(7.0,8.0); cout<< \nAniqlangan”< konstruktorga ega bo‘lishi kerak. Obyektlar massivi ko‘zda tutilgan konstruktor tomonidan, yoki har bir element uchun konstruktor chaqirish yo‘li bilan initsializatsiya qilinishi mumkin. class complex a[20]; //ko‘zda tutilgan parametrsiz konstruktorni chaqirish class complex b[2]={complex (10),complex (100)};//oshkor chaqirish Download 1.96 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling