cout<<"\n"<<"boss"< boss.show_employee(); return 0; } Misol uchun complex sinfi uchun konstruktorni quyidagicha kiritish mumkin : complex (double re = 0.0; double im = 0.0 ) {real=re; imag=im;} Konstruktorlar uchun qaytariluvchi tiplar, xatto void tipi ham ko‘rsatilmaydi. Dasturchi tomonidan ko‘rsatilmagan holda ham ob’ekt yaratilganda konstruktor avtomatik ravishda chaqiriladi. real va imag parametrlari avtomatik ravishda 0.0 qiymatlariga ega bo‘ladi. Ko‘zda tutilgan holda parametrsiz konstruktor va quyidagi tipdagi nusxa olish konstruktorlari yaratiladi: T :: T (const T&) Misol uchun class F {... public : F(const T&) ... } Sinfda bir nechta konstruktorlar bo‘lishi mumkin, lekin ularning faqat bittasida parametrlar qiymatlari oldindan ko‘rsatilgan bo‘lishi kerak. Konstruktor adresini hisoblash mumkin emas. Konstruktor parametri sifatida o‘z sinfining nomini ishlatish mumkin emas, lekin bu nomga ko‘rsatkichdan foydalanish mumkin. Konstruktorni oddiy komponenta funksiya sifatida chakirib bo‘lmaydi. Konstruktorni ikki xil shaklda chaqirish mumkin : Sinf_nomi .Ob’ekt_nomi (konstruktor_xaqiqiy_parametlari) Sinf_nomi (konstruktor_xaqiqiy_parametlari) Birinchi shakl ishlatilganda xaqiqiy parametrlar ro‘yxati bo‘sh bo‘lmasligi lozim. Bu shakldan yangi ob’ekt ta’riflanganda foydalaniladi: complex SS(10.3; 0.22) // real=10.3; SS.imag= 0.22; complex EE (2.3) // EE . real= 2.3; EE.imag= 0.0; complex D() // xato Konstruktorni ikkinchi shaklda chaqirish nomsiz ob’ekt yaratilishiga olib keladi. Bu nomsiz ob’ektdan ifodalarda foydalanish mumkin. Misol uchun : complex ZZ= complex (4.0;5.0); Bu ta’rif orkali ZZ ob’ekt yaratilib, unga nomsiz ob’ekt qiymatlari(real= 4.0; imag= 5.0) beriladi;
Do'stlaringiz bilan baham: |