Kitob uchta qismdan iborat. "Strukturali dasturlash", "Obyektli-yo’nalishli dasturlash", "Standart kutubxonalar"



Download 333,2 Kb.
bet60/90
Sana10.07.2022
Hajmi333,2 Kb.
#770437
1   ...   56   57   58   59   60   61   62   63   ...   90
Bog'liq
C majmua

Nusxalash konstruktori

Nusxalash konstruktori – bu sinfning obyektiga ko’rsatgichicha yagona parametr sifatida olingan konstruktorni maxsus turi hisoblanadi:


T::T(const Т&){ ... /* Kostruktor tanasi */ }
bu yerda Т – sinf nomi.
Bu konstruktor yangi obyekt mavjudlarini nusxalash yo’li bilan yaratiladigan hollarda chaqiriladi.

  • yangi obyektni boshqa obyektlarini initsializatsiyalash bilan tavsiflashda;

  • obyektni qiymat bo’yicha funksiyaga uzatishda;

  • funksiyadan obyektni qaytarishda.

Agar dasturni birorta ham nusxalash konstruktorini ko’rsatmagan bo’lsa, kompilyator uni avtomotik yaratadi. Bunday konstruktor maydonidagi elementlari bo’yicha nusxalashni bajaradi. Agar sinf ko’rsatgichlar yoki murojaatlarni o’z ichiga olsa, bu noto’g’ri bo’ladi, chunki nusxa ham, original ham bitta xotira sohasini ko’rsatadi.
monstr sinfi uchun nusxalash konstruktorini yozamiz. Unda simvollar satriga ko’rsatgichni o’z ichiga oluvchi name maydoni bo’lgani uchun nusxalash konstruktor yangi satrga xotira ajratishi va unga berilganini nusxalashi lozim:

monstr::mcnstr(const monstr &М) {


if (M.name) {
name = new char [strlen(M.name) + 1];
strcpy(name, M.name);}
else name = 0;
health = M.health; ammo = M.ammo; skin = M.skin;
}

monstr Vasia(blue);
monstr Super = Vasia; // Nusxalash konstruktori ishlaydi
monstr *m = new monstr ("Orc");
monstr Green = *m; // Nusxalash konstruktori ishlaydi


Sinfning statik elementlari

static modifikator yordamida sinfning statik maydon va usullarini tavsiflash mumkin. Ularni global o’zgaruvchilar yoki funksiyalar deb qarash mumkin, ularga faqat sinf chegaralarida kirish mumkin.




Statik maydonlar

Statik maydonlar sinfning barcha obyektlari uchun umumiy ma’lumotlarni, masalan, obyektlar yoki barcha obyektlar bilan ajratiluvchi resursga murojaatlar soni, saqlash uchun qo’llaniladi. Bu maydonlar barcha obyektlari uchun yagona nusxada mavjud, ya’ni ko’paytirilmaydi.


Statik maydonlarning quyidagi xususiyatlari mavjud.

  • Statik maydonlarga xotira bir marta uni yaratilgan obyektlar soniga bog’liq bo’lmagan holda initsializatsiyalashda ajratiladi (hatto ular bo’lmaganda ham) va tanlash amali bilan emas, amal qilish sohasiga kirish amali yordamida initsializatsiyalashda (ta’rif funksiyalardan tashqarida yozilishi lozim):

class А{


public:
static int count; // Sinfda e’lon
};

int A::count; // Global sohadagi ta’rif
// Jimlik bo’yicha nol bilan intsializatsiyalanadi
// int A::count = 10; Ixtiyoriy qiymat bilan initsializatsiyalash misoli



А *а, b;


cout << A::count << a → count << b.count;
// Будет выведено одно и то жe



  • Statik maydonda kirish spetsifikatori amal qiladi, shuning uchun private kabi tavsiflangan statik maydonlarni amal qilish sohasiga kirish amali yordamida o’zgartirish mumkin emas. Buni faqat statik usullar yordamida bajarish mumkin.

  • Statik maydon egallagan xotira sizeof amali yordamida obyekt o’lchamini aniqlashda hisobga olinmaydi.




Download 333,2 Kb.

Do'stlaringiz bilan baham:
1   ...   56   57   58   59   60   61   62   63   ...   90




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish