Nomlar maydoni bu uning ichidagi identifikatorlar (turlar, funktsiyalar, o'zgaruvchilar va boshqalar nomlari) qamrovini ta'minlaydigan deklarativ hudud


Nomlar va nomlar maydoni a'zolarini e'lon qilish



Download 34,06 Kb.
bet2/4
Sana06.07.2022
Hajmi34,06 Kb.
#749870
1   2   3   4
Bog'liq
1-Mustaqil ish

Nomlar va nomlar maydoni a'zolarini e'lon qilish


Odatda, siz nomlar maydonini sarlavha faylida e'lon qilasiz. Funktsiyangizning ilovalari alohida faylda bo'lsa, ushbu misoldagi kabi funksiya nomlarini kvalifikatsiya qiling.
//contosoData.h
#pragma once
namespace ContosoDataServer
{
void Foo();
int Bar();
}
contosodata.cpp funksiyasini amalga oshirish, hatto usingfaylning yuqori qismiga direktivani joylashtirgan bo'lsangiz ham, to'liq nomdan foydalanishi kerak:
#include "contosodata.h"
using namespace ContosoDataServer;


void ContosoDataServer::Foo() // use fully-qualified name here
{
// no qualification needed for Bar()
Bar();
}


int ContosoDataServer::Bar(){return 0;}
Nom maydoni bitta faylda bir nechta bloklarda va bir nechta fayllarda e'lon qilinishi mumkin. Kompilyator dastlabki ishlov berish jarayonida qismlarni birlashtiradi va natijada olingan nomlar maydoni barcha qismlarda e'lon qilingan barcha a'zolarni o'z ichiga oladi. Bunga standart kutubxonadagi sarlavha fayllarining har birida e'lon qilingan std nom maydoni misol bo'la oladi.
Nomlangan nom maydonining a'zolari ular e'lon qilingan nom maydonidan tashqarida aniqlanayotgan nomning aniq kvalifikatsiyasi orqali aniqlanishi mumkin. Biroq, ta'rif deklaratsiyaning nom maydonini o'z ichiga olgan nom maydonida e'lon nuqtasidan keyin paydo bo'lishi kerak. Masalan:
// defining_namespace_members.cpp
// C2039 expected
namespace V {
void f();
}


void V::f() { } // ok
void V::g() { } // C2039, g() is not yet a member of V


namespace V {
void g();
}
Ushbu xato nomlar maydoni a'zolari bir nechta sarlavhali fayllarda e'lon qilinganida yuzaga kelishi mumkin va siz ushbu sarlavhalarni to'g'ri tartibda kiritmagansiz.

Global nomlar maydoni


Agar identifikator aniq nomlar maydonida e'lon qilinmagan bo'lsa, u yashirin global nomlar maydonining bir qismidir. Umuman olganda, global nomlar maydonida bo'lishi kerak bo'lgan kirish nuqtasi asosiy Funktsiyadan tashqari, iloji bo'lsa, global miqyosda deklaratsiyalar qilishdan qochishga harakat qiling . Global identifikatorni aniq kvalifikatsiya qilish uchun dagi kabi nomsiz doirani aniqlash operatoridan foydalaning ::SomeFunction(x);. Bu identifikatorni boshqa nomlar maydonidagi bir xil nomli har qanday narsadan ajratib turadi va bu sizning kodingizni boshqalarga tushunishini osonlashtirishga yordam beradi.

Download 34,06 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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