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



Download 333,2 Kb.
bet83/90
Sana10.07.2022
Hajmi333,2 Kb.
#770437
1   ...   79   80   81   82   83   84   85   86   ...   90
Bog'liq
C majmua

8-BOB
Tiplarni almashtirish

Dasturni bajarishda miqdorlarni bir tipdan ikkinchisiga oshkor va oshkormas almashtirishlar amalga oshiriladi. C++ tilida oshkor almashtirishlarni bajarish uchun amallar guruhi const_cast, dynamic_cast, reinterpret_cast va static_cast hamda C tilda meros qilingan tipni keltirish amali mavjud.




C uslubida tiplarni keltirish amali
Amal ikki shaklda yozilishi mumkin:
tip (ifoda)
(tip) ifoda
Amal natijasi bo’lib, berilgan tipdagi qiymat hisoblanadi, masalan:
int а = 2;
float b = 6.8;
printf(“%f %d’, double (a), (int) b);
a miqdor double tipiga, b o’zgaruvchi kasr qismini qirqishga ega int tipiga o’tkaziladi, ikkala holda almashtirish amali natijasini tasvirlashning ichki shakli berilgan qiymat shakliga qaraganda boshqacharoq.
Tipni almashtirish zarurati masalan, funksiya u bilan keyinchalik qandaydir amalni bajarish uchun konkret tipdagi o’zgaruvchi berish talab etiladigan void tipiga ko’rsatgichni qaytaradigan holda paydo bo’ladi:
float *q = (float *) malloc(100 * sizeof(float));
Tipni oshkora almashtirish sodir bo’lishi mumkin bo’lgan xatolar manbai hisoblanadi. Chunki uning natijasi uchun butun ma’suliyat dasturchiga yuklanadi. Shuning uchun C++da bajariladigan almashtirishlarni qisman nazorat qilishga yoki dasturchining maqsadlarini tushinish uchun oshkora qilishga imkon beruvchi amallar kiritilgan. Yuqorida qaralgan C uslubdagi almashtirish C++da faqat quyi muvofiqlik uchun qoldirilgan va ularni foydalanish tavsiya etilmaydi. Talab qilingan almashtirish turiga bog’liq ravishda unga mos keluvchi tipga keltirish amalini foydalanish zarur.


const_cast amali

Amal const modifikatorini yo’qotish uchun xizmat qiladi. Odatda u const modifikatoriga ega bo’lmagan formal parameter o’rniga konstant ko’rsatgich funksiyasiga uzatishda qo’llaniladi. Amal formati:


const_cast (ilova)
Belgilangan tip const modifikatorda boshqa ifoda tipi kabi bo’lishi mumkin. Bu ko’rsatgich odatiy. Amal ko’rsatilgan tipdagi natijani shakllantiradi.
Bu amalni kiritish zarurati funksiyani amalga oshiruvchi dasturchi undagi o’zgarmaydigan const kabi formal parametrlarni tavsiflashi shart emasligidan kelib chiqadi, vaholanki bu tavsiya etiladi. C++ qoidalari konstant ko’rsatgichni odatdagisi o’rniga uzatishni man etadi. const_cast amali bu cheklovni chetlab o’tish uchun kiritilgan. Tabiiyki, funksiya uzatilayotgan ko’rsatgich murojaat qiladigan qiymatni o’zgartishga harakat qilmasligi lozim, aks holda dasturni bajarish natijasi aniqlanmagan bo’ladi.
Misol:
void print(int *р){ // Funksiya *p qiymatni o’zgartirmaydi
cout << *р;
}
const int *р;

/* print(p); Xato, chunki p konstantan ko’rsatgich sifatida e’lon qilingan */
const_cast amali dasturchi funksiya tanasida ko’rsatgich murojaat qiluvchi qiymat o’zgarmaydi. Tabiiyki, agar formal parameter tavsifiga const modifikatorini qo’shish imkoniyati bo’lsa, bu funksiyani chaqirishda tipni almashtirishdan foydalanishga nisbatan afzalroq.



Download 333,2 Kb.

Do'stlaringiz bilan baham:
1   ...   79   80   81   82   83   84   85   86   ...   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