reinterpret_cast operatoridan foydalanish quyidagi dasturda namoyish etiladi.
// Operator reinterpret_cast foydalanish misol.
#include
using namespace std;
int main(){
int i;
char * p = " bu qisqa chiziq.";
i = reinterpret_cast (p); / / a pointer to type int.
cout << i;
return 0;
}
Bu erda operator reinterpret_cast pointer p o'zgartiradi integer qiymati. Ushbu konvertatsiya turdagi asosiy o'zgarishni anglatadi.
Yangi to'rt castoperatorlar bilan odatdagi olib tashlash operatsiyalarini solishtirish
O'quvchilardan biri yuqorida tavsiflangan to'rtta cast operatorining an'anaviy turdagi haydash operatsiyasini to'liq almashtirishi mumkin. Va keyin ular bir savol bo'lishi mumkin: "u har doim yangi vositalarni ishlatish uchun turdagi olib an'anaviy operatsiya o'rniga arziydi?". Aslida, barcha dasturchilar uchun umumiy qoidalar yo'q. Yangi operatorlari boshqasiga ma'lumotlar bir turini olib juda xavfli operatsiya xavfsizligini oshirish uchun yaratilgan beri, ko'p C-dasturchilar ishonch hosil, ular faqat shu maqsadda foydalanish kerak, deb. Va bu erda biror narsaga e'tiroz bildirish qiyin. Boshqa dasturchilar an'anaviy amaliyot turlari ko'p yillar davomida ularga "sadoqat" xizmat olib, chunki, keyin u tark qilish oson emas, deb ishonaman. Misol uchun, oddiy va nisbatan xavfsiz olib turdagi operatsiyalarni amalga oshirish uchun (i / o vazifalarni qo'ng'iroq qachon zarur bo'lganlar kabi o'qish() va yozish(), oldingi bobda tasvirlangan) "yaxshi eski" vositasi juda ma'qul bo'ladi.
Bunga rozi bo'lmaslik qiyin bo'lgan yana bir nuqtai nazar mavjud: polimorf turlarini olib kelish operatsiyalarini amalga oshirishda, albatta, dynamic_cast operatoridan foydalanishga arziydi.
Do'stlaringiz bilan baham: |