Oshkormas yaratilgan standart konstruktor




Download 321.25 Kb.
Pdf ko'rish
bet4/4
Sana10.04.2023
Hajmi321.25 Kb.
#50126
1   2   3   4
Bog'liq
konstruktor
3-topshiriq cisco, 17 mayga referat, aaa, №1-Mustaqil ish TTS21-01 A-B-g (1)
Oshkormas yaratilgan standart konstruktor. Agar sinfingizda 
konstruktorlar bo‘lmasa, C++ avtomatik ravishda sinfingiz uchun umumiy 
standart konstruktorni yaratadi. Ba'zan uni yashirin konstruktor (yoki 
"oshkormas tarzda yaratilgan konstruktor") deb atashadi. –listingda 
berilgan sinfni ko‘rib chiqaylik. 
class Date 

private: 
int m_day = 12; 
int m_month = 1; 
int m_year = 2018; 
}; 
Bu sinfda konstruktor yo‘q, shuning uchun kompilyator quyidagi 
konstruktorni yaratadi: 
class Date 

private: 
int m_day = 12; 
int m_month = 1; 
int m_year = 2018; 
public: 
Date() // oshkormas generatsiya qilingan konstruktor 


}; 


Bu konstruktor sinf obyektlarini yaratishga imkon beradi, lekin ularni 
initsializatsiyalamaydi yoki sinf a'zolariga qiymatlar tayinlamaydi. 
Aniq yaratilmagan konstruktorni ko‘ra olmasangiz ham, uning 
mavjudligini isbotlashingiz mumkin: 
class Date 

private: 
int m_day = 12; 
int m_month = 1; 
int m_year = 2018; 
// Hech qanday konstruktor ta'minlanmagan, shuning uchun C++ 
avtomatik ravishda umumiy standart konstruktorni yaratadi 
}; 
int main() 

Date date; // yashirin konstruktorni chaqiriladi 
return 0; 

Yuqoridagi kod kompilyatsiya qilinadi, chunki yopiq konstruktor 
(umumiy bo‘lgan) Date obyektini yoqadi. Agar sinfingizda boshqa 
konstruktorlar bo‘lsa, u holda yashirin tarzda yaratilgan konstruktor 
yaratilmaydi(-listing).
class Date 

private: 
int m_day = 12; 
int m_month = 1; 
int m_year = 2018; 
public: 
Date(int day, int month, int year) // oddiy konstruktor (jimlik 
bo‘yicha emas) 

m_day = day; 
m_month = month; 


m_year = year; 

// Yashirin konstruktor yaratilmaydi, chunki allaqachon 
konstruktorimizni aniqlaganmiz 
}; 
int main() 

Date date; // xato: obyektni yaratib bo‘lmaydi, chunki standart 
konstruktor yo‘q va kompilyator avtomatik ravishda konstruktorni 
yaratmagan. 
Date today(14, 10, 2020); // today obyektini initsializatsiyalash 
return 0; 

Har bir sinf uchun har doim kamida bitta konstruktor yaratish tavsiya 
etiladi. Bu sizga o‘z sinfingiz obyektlarini yaratish jarayonini boshqarishga 
imkon beradi va boshqa konstruktorlarni qo‘shgandan so‘ng yuzaga kelishi 
mumkin bo‘lgan muammolarni oldini oladi. 
 

Download 321.25 Kb.
1   2   3   4




Download 321.25 Kb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



Oshkormas yaratilgan standart konstruktor

Download 321.25 Kb.
Pdf ko'rish