1-ma’ruza. Noma'lum nomlarning noma'lum turlari va maydoni Ma’ruza rejasi


foydalanish namespace nomi; foydalanish



Download 63,61 Kb.
bet13/14
Sana31.12.2021
Hajmi63,61 Kb.
#242065
1   ...   6   7   8   9   10   11   12   13   14
Bog'liq
1-mavzu

foydalanish namespace nomi; foydalanish

Birinchi shaklda nom parametri siz istagan nom maydoni nomini belgilaydi. Qo'llanmaning ushbu shaklini ishlatganda, ko'rsatilgan nom maydonida aniqlangan barcha a'zolar hozirgi nom maydonida mavjud bo'lib, ular bilan to'g'ridan-to'g'ri ishlashi mumkin, bu esa har safar kosmik nomini va ko'rish maydonini kengaytirish operatorini ko'rsatmasdan. Foydalanish ko'rsatmalar ikkinchi shakl yordamida qachon aniq faqat nomi maydoni a'zosi ko'rsatmalar ko'rsatilgan amalga oshiriladi. Misol uchun, biz yuqorida tasvirlangan MyNameSpace nom maydoni bor bo'lsin, keyin to'g'ri barcha quyida keltirilgan using ko'rsatmalar va tayinlash operatorlari:

using MyNameSpace::k; / / aniq faqat k o'zgaruvchilar amalga oshiriladi 10; / / ko'rsatmalar to'g'ri, o'zgaruvchilar aniq, chunki

foydalanish namespace MyNameSpace; H ko'rinadigan barcha a'zolari amalga oshiriladi

N kosmik MyNameSpace nomlari

10; / / ko'rsatmalar to'g'ri, chunki MyNameSpace nomlarining barcha a'zolari // joylari ko'rinadi

Xuddi shu nom bilan bir nechta nom maydonini e'lon qilish imkoniyati mavjud. Bu siz bir necha fayllar ichiga nom oraliq ajratish yoki hatto bitta fayl ichida nom oraliq ajratish imkonini beradi. Quyidagi misolni ko'rib chiqaylik:

namespace NS { inti;

namespace NS { int j};

Bu erda NS nomlari maydoni ikki qismga bo'linadi. Shunga qaramay, har bir qismning mazmuni hali ham bir xil nom maydonida — NS makonida qolmoqda.

Ism maydoni boshqa barcha ko'rinishlar doirasidan tashqarida e'lon qilinishi kerak, faqat bitta nom maydoni boshqasiga investitsiya qilinishi mumkin. Ya'ni, nomlarning ichki maydoni faqat boshqa nomlarda bo'lishi mumkin, lekin har qanday ko'rinishda emas. Bu shuni anglatadiki, nomlarning bo'sh joylarini e'lon qilish mumkin emas, masalan, funktsiya ichida.

Maxsus turdagi nomlar mavjud-Nomsiz nom maydoni (unnamed space). Nomsiz nom maydoni sizga ma'lum bir fayl ichida noyob identifikatorlarni yaratishga imkon beradi. Quyida Nomsiz nomlarning asosiy shakli ko'rsatilgan:

namespace {// e'lonlar}

Nomsiz nomlar joylari faqat bitta faylning ko'rinishi sohasida ma'lum bo'lgan noyob identifikatorlarni o'rnatish imkonini beradi. Shunday qilib, Nomsiz ism maydonini o'z ichiga olgan fayl ichida, bu makon a'zolariga hech qanday aniqlik kiritmasdan to'g'ridan-to'g'ri murojaat qilish mumkin. Lekin bu fayldan tashqarida bunday identifikatorlar noma'lum.

Kichik va o'rta dastur uchun nom joylaringizni yaratishingiz shart emas. Biroq, agar siz bir nechta foydalanish uchun mo'ljallangan funktsiyalar yoki sinflar kutubxonalarini yaratmoqchi bo'lsangiz yoki dasturlaringizni keng tolerantlik bilan kafolatlashni istasangiz, kodlaringizni ba'zi nomlar ichida joylashtirishni ko'rib chiqing.

Misollar


1. Quyidagi misolda namoyish nomlarining atributlari ko'rsatilgan.

// Namespace nomi # include < iostream > using namespace std;

// namespace nomlari birinchi oraliq aniqlash 6rstns { class demo (int i; public:

bu bizning bemorlarimiz va xodimlarimiz uchun katta sharaf.; }

o'tish: saytda harakatlanish,qidiruv;

/ l namespace secondNS nomlari ikkinchi oraliq aniqlash { int x, y;

int main()

// ko'rinish maydonini kengaytirish ob(10);

/ * Ob ob'ektini e'lon qilgandan so'ng, uning a'zo vazifalari nomlar maydonini aniqlashtirmasdan to'g'ridan-to'g'ri ishlatilishi mumkin

cout < < " ob ob'ekt qiymati teng:"

// 6rstns foydalanish hozirgi ko'rinishi sohasida str mag'lubiyatga kiriting:: str; cout <;

// 6rstns nomlari butun oraliq kiriting / / f1rstns foydalanish hozirgi ko'rinishi sohasida; uchun (counter=l (); counter; counter—) hisoblash << counter < cout << endl;

// secondns secondns nomlari oraliq foydalanish:: x 10; secondNS:: y 20;

o'tish: saytda harakatlanish, qidiruv;

/l secondNS / l nomlarining barcha maydonini ikkinchi nomlar yordamida joriy ko'rish maydoniga kiriting; demo xo( x), uo (y);

cout

Dasturni amalga oshirgandan so'ng, ekranda quyidagilar ko'rsatiladi:

Ob ob'ektining qiymati: 10 endi ob ob'ektining qiymati: 99

Ism joylarini tasvirlash

109 8 7 6 543 2 1

O'zgaruvchilar x, y teng: 10, 20

Xo, uo ob'ektlarining qiymatlari tengdir: 10, 20

Dastur bir muhim pozitsiyani tasvirlaydi: bir nechta nom joylarini almashish bilan bir makon boshqasini almashtirmaydi. Hozirgi ko'rinishdagi ma'lum bir nom maydonini kiritganingizda, uning nomlari o'sha vaqtda boshqa nomlar maydonlaridan nomlar mavjud bo'lishidan qat'i nazar, bu maydonga qo'shiladi. Shunday qilib, dastur tugallanadigan vaqtga kelib, std, firstNS va secondNS nomlari uchun joylar global nom maydoniga qo'shildi.

2. Yuqorida aytib o'tilganidek, nom maydoni fayllar orasidagi yoki bitta fayl ichida bo'linishi mumkin, keyin bu nom maydonining mazmuni birlashtiriladi. Ajratilgan nom maydonini birlashtirish misolini ko'rib chiqing.

/ l nomi oraliq birlashtirish # include foydalanish namespace std;

namespace Demo { int a; / l nomi fazoda o'zgaruvchilar a e'lon Demo int x; / / global nomi kosmosda o'zgaruvchilar x e'lon

namespace Demo { int B; / / kosmik nomi Demo int main o'zgaruvchan B e'lon()

foydalanish namespace Demo; a = b = x = 100; cout a "" b ' return 0;

Ushbu misolda ikkala o'zgaruvchi ham, a va B nomlari bir xil maydonda edi demo nom maydoni va x o'zgaruvchisi global nom maydonida edi.

Z. yuqorida aytib o'tilganidek, Standard C++ standarti std nomlarining o'z maydonida butun kutubxonani belgilaydi. Shuning uchun ushbu kitobning barcha dasturlarida quyidagi ko'rsatmalar mavjud:




Download 63,61 Kb.

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




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