|
Tiplarni dinamik tarzda aniqlash. Reja: Tiplarni dinamik tarzda aniqlash
|
bet | 10/143 | Sana | 20.07.2024 | Hajmi | 0,81 Mb. | | #268096 |
Bog'liq Tiplarni dinamik tarzda-fayllar.orgconst_cast operatori. Const_cast operatori const va/yoki volatile o‘zgartirgichlarni qayta aniqlash uchun xizmat qiladi.
Const_cast operatori const va / yoki volatile o‘zgartirgichlarni ochiq qayta aniqlash/joriy qilish uchun ishlatiladi. const yoki volatile ning atrubutlariga istesno tariqasida, yangi tipi joriy tipi bilan mos bo‘lishi kerak. Ko‘pincha const_cast
operatori const atributini olib tashlash uchun ishlatiladi. Uning umumiy formati quyidagicha:
Bu yerda type elementi yangi tipga almatirish tipini o‘rnatadi, expr elementi esa yangi tipga tipi almatirilishi kerak bo‘lgan o‘zgaruvchi(ifoda)ni bildiradi.
1.9-dastur. Const_cast operatoridan foydalanish.
#include "stdafx.h"
#include #include
using namespace std;
void f (const int *p){ int *v;
v = const_cast (p); // const-oʻzgaruvchini qayta almashtirish.
*v = 1980; // yangi qiymat berish, modifikatsiyalash
}
int main(){
int x = 2004;
cout <<" f() funksiya chaqirilmasdan oldin x ni qiymati: " << x<< endl; f (&x);
cout <<" f() funksiya chaqirilgandan soʻng x ni qiymati: " << x<< endl; system("pause");
return 0;
}
|
1.9 – dastur natijasi. Output
|
f() funksiya chaqirilmasdan oldin x ni qiymati: 2004
f() funksiya chaqirilgandan soʻng x ni qiymati: 1980
|
Ko‘rib turganingizdek, x o‘zgaruvchi qabul qilgan parametr const ko‘rsatgichi sifatida o‘rnatildi va f() funksiyasi tomonidan o‘zgartirilgan.
Const atributini o‘chirish uchun const_cast operatoridan foydalanish xavfli darajadagi vosita ekanligini alohida taʻkidlash lozim. Shuning uchun, juda diqqat bilan foydalanishni tavsiya qilamiz.
Faqat const_cast operatori const atributini o‘chirishi mumkinligini bilib oldingiz. Boshqa so‘zlar bilan aytganda, na dynamic_cast, static_cast, yoki reinterpret_cast obʻyekt const atributini o‘zgartirish uchun foydalanish mumkin emas.
|
| |