Nomlar makoni (Namespaces)
Nomlar makoni
Nomlar makoni — tegishli kodni bitta nom ostida guruhlash usuli. U kodingiz kengayganda yoki bir nechta manbadan kod ishlatganda nom to'qnashuvlarini oldini olishga yordam beradi.
Nomlar makonini papka sifatida tasavvur qiling: ikkita turli papkada x nomli o'zgaruvchi bo'lishi mumkin va ular to'qnashmaydi.
Nima uchun nomlar makonidan foydalanish kerak?
- Nom to'qnashuvlarini oldini olish, ayniqsa katta loyihalarda
- Kodni mantiqiy guruhlarga ajratish
- O'z kodingizni kutubxona kodidan ajratish
Asosiy misol
Bu yerda MyNamespace nomli nomlar makoni ichida x o'zgaruvchisi e'lon qilingan:
MISOL
namespace MyNamespace {
int x = 42;
}
int main() {
cout << MyNamespace::x;
return 0;
}Nomlar makoni ichidagi o'zgaruvchiga kirish uchun MyNamespace::x yoziladi.
using namespace kalit so'zi
Har safar nomlar makoni nomini yozishni xohlamasangiz, using kalit so'zidan foydalanishingiz mumkin:
MISOL
namespace MyNamespace {
int x = 42;
}
using namespace MyNamespace;
int main() {
cout << x; // MyNamespace::x yozish shart emas
return 0;
}EHTIYOT BO'LING
Katta dasturlarda using namespace ishlatish nom to'qnashuvlariga olib kelishi mumkin. Ko'pincha MyNamespace::x kabi to'liq nomni yozish yaxshiroqdir.
std nomlar makoni
C++ da cout, cin va endl kabi narsalar Standart kutubxonaga tegishli.
Bularning barchasi std nomli nomlar makoni ichida, bu standart degan ma'noni anglatadi. Shuning uchun odatda std::cout, std::cin va boshqalarni yozish kerak.
Kodni qisqartirish uchun quyidagini qo'shish mumkin:
MISOL
using namespace std;Bu cout, cin va endl ni har safar std:: yozmasdan ishlatish imkonini beradi.
using namespace std ishlatmasdan:
MISOL
#include <iostream>
int main() {
std::cout << "Hello World!\n";
return 0;
}using namespace std ishlatib:
MISOL
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!\n";
return 0;
}Har doim ishlatish kerakmi?
Kichik dasturlar va o'rganish uchun using namespace std yozish ma'qul.
Lekin katta loyihalarda har bir element oldidan std:: yozish yaxshiroq. Bu turli kutubxonalarda bir xil nomli funksiyalar yoki o'zgaruvchilar bo'lganda to'qnashuvlarni oldini oladi.
Qisqacha: using namespace std; boshlang'ich dasturchilar uchun qulay, lekin katta dasturlarda ehtiyotkorlik bilan ishlating.
