Namespace (nomlar maydoni)


Nomlar va nomlar maydoni a'zolarini e'lon qilish


Download 31.99 Kb.
bet2/4
Sana17.06.2023
Hajmi31.99 Kb.
#1523755
1   2   3   4
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 funktsiya 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. Misol uchun:
// 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();
}


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.


std nom maydoni
Barcha C++ standart kutubxona turlari va funktsiyalari stdnomlar maydonida yoki ichkariga joylashtirilgan nomlar bo'shliqlarida e'lon qilinadi std.

Download 31.99 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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