Sinf tushunchasi. Konstruktor va destruktor. Sinf statik komponentlari. Sinflarda ko‘rsatkichlar
Download 26.9 Kb.
|
Sinf va const o\'zgaruvchilar Tojiyev Feruzbek
Birinchi usulda parametrlar qiymatlari konstruktor tanasiga uzatiladi.
Ikkinchi usulda esa ushbu sinfdagi initsializatorlar ro‘yxatidan foydalanish nazarda tutilgan. Bu ro‘yxat parametrlar ro‘yxati va konstruktor tanasi orasiga joylashadi. Sinfning biror obyekti uchun ajratilgan xotira obyekt yo‘qotilgandan so‘ng bo‘shatilishi lozimdir. Sinflarning maxus komponentalari destruktorlar, bu vazifani avtomatik bajarish imkonini yaratadi. Destruktorni standart shakli quyidagicha: ~ Destruktor parametri yoki kaytariluvchi qiymatga ega bo‘lishi mumkin emas (xatto void tipidagi). Dastur obyektni o‘chirganda destruktor avtomatik chaqiriladi. Agarda sinfda destruktor ochiq ko‘rsatilmagan bo‘lsa, unda kompilyator ko‘rsatilgan obyekt egallagan xotirani bo‘shatuvchi destruktorni generatsiyalaydi. Boshqa obyektlar egallagan xotirani bo‘shatmoqchi bo‘lsak, destruktorni ochiq aniqlash lozim. Masalan, string obyektdagi ch ko‘rsatgan saxifani “Simvol satri” sinfi. class string { char *ch; // matnli satriga ko‘rsatkich int len; // matnli satrni uzunligi public: // konstruktorlar. bo‘sh satr – obyektni yaratish string(int N = 80): len(0){ch = new char[N+1]; ch[0] = ‘\0’;} // berilgan satr bo‘yicha obyekt yaratadi string(const char *arch){len = strlen(arch); ch = new char[len+1]; strcpy(ch,arch);} // funksiyalar – komponentlar // murojaatni satr uzunligiga qaytaradi int& len_str(void){return len;} // ko‘rsatkichni satrga qaytaradi char *str(void){return ch;} //Nusxa olish klnstruktori string(const string& st) {len=strlen(st.len); ch=new char[len+1]; strcpy(ch,st.ch); } //Destruktor ~string(){delete []ch;} }; Sinf elementlariga ko‘rsatkichlar yordamida murojat etish mumkin. Buning uchun .* i ->* amallari aniqlangan. Sinf maydoniga va usullariga ko‘rsatkichlar har xil tartibda aniqlanadi. Download 26.9 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling