|
Masala:
C va D class ning maydonlariga murojaat
|
bet | 9/10 | Sana | 17.05.2024 | Hajmi | 4,17 Mb. | | #239108 |
Bog'liq amaliy ishMasala:
C va D class ning maydonlariga murojaat
Sinf ma'lum bir turning namunasi ekanligini aniqlash
uchun dynamic_cast-dan foydalanish:
Bir nechta merosni ko'rsatuvchi sinf ierarxiyasi
D turidagi obyektga ko'rsatgichni B yoki C ga xavfsiz uzatish mumkin. Ammo, agar turdan turga keltirish natijasida D obyekt A obyektiga ishora qilsa, A obyekti qaysi namunaga olib keladi?
Bu noaniq turdan turga keltirish xatoga olib kelishi mumkin. Ushbu muammoni hal qilish uchun siz ikkita aniq turdan turga keltirishni bajarishingiz mumkin.
Masala:
Turlar ierarxiyasi: Turlar ierarxiyasi ga misol
static_cast operatori
Ifodani faqat iborada mavjud bo'lgan turlarga asoslanib, tur identifikatorini kiritish uchun o'zgartiradi.
Sintaksisi - static_cast ( expression );
Static_cast operatoridan ko'rsatgichni bazaviy sinfga va olingan sinfga ko'rsatgichga aylantirish kabi operatsiyalar uchun foydalanish mumkin. Bunday o'zgartirishlar har doim ham xavfsiz emas.
Umuman olganda, static_cast raqamli ma'lumotlarning turlarini o'zgartirish uchun ishlatiladi, masalan, sonlar yoki butun sonlarga raqamlar, suzuvchi nuqta raqamlari va konversiyada ishlatiladigan ma'lum ma'lumotlar turlari.
static_cast operatoriga misol
Misol tahlili
Dynamic_cast-dan farqli o'laroq, static_cast pb konversiyasida ish vaqti tekshiruvi amalga oshirilmaydi. Pb bilan ko'rsatilgan obyekt D turining obyekti bo'lmasligi mumkin, bu holda *pd2-dan foydalanish dahshatli oqibatlarga olib kelishi mumkin. Masalan, D sinfiga tegishli, ammo B sinfiga kirmaydigan funktsiyani chaqirish kirishning buzilishiga olib kelishi mumkin.
|
| |