Sinf tushunchasi. Konstruktor va destruktor. Sinf statik komponentlari. Sinflarda ko‘rsatkichlar


Download 26.9 Kb.
bet3/4
Sana17.06.2023
Hajmi26.9 Kb.
#1544666
1   2   3   4
Bog'liq
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:
1   2   3   4




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