Tiplarni dinamik tarzda


Download 1.83 Mb.
bet11/131
Sana16.06.2023
Hajmi1.83 Mb.
#1503422
1   ...   7   8   9   10   11   12   13   14   ...   131
Bog'liq
Tiplarni dinamik tarzda

1.11-dastur. Reinterpret_cast operatoridan foydalanish.


#include "stdafx.h" #include

using namespace std;



int main(){
int i;
char *p = "Salom Buxoro";
i = reinterpret_cast (p); // koʻrsatkichni int tipiga almashtirish. cout << i<system("pause"); return 0;
}

Bu yerda reinterpret_cast operatori p ko‘rsatkichni butun son int qiymatiga aylantiradi. Bu o‘zgartirish asosiy tipni o‘zgarish ifodalaydi. Bu tip almashtirishni oddiy kasting bilan ham amalga oshirish mumkin.
Yangi to‘rtta cast operatorlari bilan anʻanaviy tipni almashtirish amali (kasting) qanday farq mavjud. Baʻzi dasturchilar to‘rt cast operatorlari yuqorida tasvirlangan butunlay anʻanaviy tipni almashtirish amalining o‘rniga deb o‘ylashlari mumkin. Ularning o‘rniga har doim odatiy tipni almashtirishning yangi vositalaridan foydalanish kerakmi? – degan savol qiziqtirishi mumkin. Aslida barcha dasturchilar uchun umumiy qoida yo‘q. Yangi operatorlar bir maʻlumot tipini boshqasiga almashtirishni ancha xavfli amallar xavfsizligini yaxshilash uchun yaratilganligi sababli, ko‘pgina C++ dasturchilari faqat shu maqsadda ishlatilishi kerakligiga ishonch hosil qilgan. Bunga eʻtiroz qilib bo‘lmaydi. Boshqa dasturchilar anʻanaviy tipi almashtirish amali ko‘p yillar davomida ularga "sadoqat" bilan xizmat qilib bergan, undan shunday voz kechish oson emas. Masalan, oddiy va nisbatan xavfsiz tipdagi kasting amallarini bajarish uchun read() va write() funksiyalarini chaqirganda talab qilinadi.
Ammo shunday dasturlashda jarayonlar borki, ularda cast operatorlaridan foydalanish maqsadga muvofiqdir, masalan, polimorf tiplar uchun cast amallarini bajarishda albatta dynamic_cast operatoridan foydalanishga to‘g‘ri keladi.

Download 1.83 Mb.

Do'stlaringiz bilan baham:
1   ...   7   8   9   10   11   12   13   14   ...   131




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