using namespace std;
Ushbu ko'rsatma std nomlari maydonini joriy qiladi, bu esa standart C+f til kutubxonasida aniqlangan funktsiyalar va sinflarning nomlariga to'g'ridan-to'g'ri kirish imkonini beradi, bu esa har doim std nomining ishlatilishini aniqlashtirish uchun görünürlük kengaytirish operatoridan foydalanish kerak emas.
Shunga qaramay, agar xohlasangiz, har bir identifikator oldida std nom maydoni nomini va ko'rish maydonini kengaytirish operatorini qo'yish mumkin-hech qanday xato bo'lmaydi. Misol uchun, keyingi dasturda Standard S-N til kutubxonasi global ko'rinishga ega emas.
// Ishlatilgan nom maydonining aniq vazifasi # include < iostream > int main () double val; std:: cout <:
std::cin >> val;
std:: cout <: std::cout << val; return 0;
Ushbu dasturda ko'rsatilgandek, standart cin va cout kirish va chiqish oqimlaridan foydalanish uchun ushbu mavzularning nomlari aniq nom maydonini aniq ko'rsatishi kerak.
Agar Sizning dasturingiz Standard C + f til kutubxonasidan keng foydalanishni ta'minlamasa, siz std nomini global ko'rinishga kiritolmaysiz. Ammo, agar dastur standart kutubxona nomlari uchun yo'nalishlarga minglab o'z ichiga oladi, agar, std ID dasturi deyarli har bir qo'llanma uchun uni qo'shib ancha oson o'z ichiga oladi.
4. Agar dasturingizda standart kutubxonadan faqat bir nechta nomlardan foydalansangiz, ushbu bir nechta nomlarni alohida-alohida ishlatish bo'yicha ko'rsatmalar yordamida qulayroq bo'lishi mumkin. Ushbu yondashuvning afzalligi shundaki, ushbu nomlar dasturga aniqlik kiritmasdan kiritilishi mumkin va ayni paytda butun standart kutubxonani global nom maydoniga kiritish shart emas. Misol ko'rib chiqaylik:
Faqatgina bir nechta nomlarning global maydoniga kirish #include < iostream>
// std dan foydalanish st va cout oqimlariga kirishni ta'minlash:: cout; std dan foydalanish:: cin; int main()
double val; cout "" raqamni kiriting: cin > > val; cout > > <: cout << val; return 0;
Bu erda standart kirish va chiqish oqimlari cin va cout to'g'ridan-to'g'ri ishlatilishi mumkin, biroq ayni paytda std nomlarining qolgan nomlari hozirgi ko'rinish doirasidan tashqarida qoldiriladi.
Avval aytib o'tganimizdek, C-manba tili kutubxonasi global nom maydonida aniqlangan. Agar siz eski dasturni CE-ga yangilashingiz kerak bo'lsa, unda siz unga namespace std-dan foydalanish bo'yicha ko'rsatmalarni kiritishingiz yoki kutubxona a'zosiga har bir havoladan oldin std::. Agar (yangi uslub header bilan oldingi header fayllarni o'rniga, agar bu, ayniqsa, muhim ahamiyatga ega kengaytmalari holda .h). Esingizda bo'lsin, sobiq header fayllari tarkibini global nom maydoniga joylashtiradi va yangi uslubdagi sarlavhalar std nom maydonida
C tilida, agar siz global nomning ko'rinishini faqat ushbu nom qo'shilgan fayl bilan cheklashni istasangiz, uni statik, ya'ni statik identifikator sifatida e'lon qilishingiz kerak. Misol uchun, quyidagi ikkita fayl bitta dasturning bir qismidir:
Birinchi fayl
|
Ikkinchi fayl
|
Static int counter;
|
extern int counter;
|
void u) {
|
void f2() {
|
counter = = 99; / / OK
|
qarshi = 10; / L xato
|
Counter o'zgaruvchisi birinchi faylda aniqlanganligi sababli, t va uni birinchi faylda ishlatishingiz mumkin. Ikkinchi faylda, o'zgarmaydigan counter ID extern bilan ko'rsatmalarga qaramay, bu o'zgaruvchini ishlatishga urinishva xatoga olib keladi. Birinchi fayl o'zgaruvchan counter statik e'lon, biz bu fayl bilan ko'rinishi uning maydoni cheklash.
C static ID global o'zgaruvchilar e'lon hali mavjud bo'lsa-da, shu maqsadga erishish uchun, bu erda eng yaxshi yo'l bor — foydalanish, quyidagi misolda ko'rsatilgandek, ismsiz kosmik.
Birinchi fayl
|
Ikkinchi fayl
|
namespace {
|
extern mt counter;
|
int counter;
|
o'tish: saytda harakatlanish, qidiruv
|
o'tish: saytda harakatlanish, qidiruv
Nazariy savollar
O’zgaruvchilarning tipini dinamik ravishda aniqlash deganda nima tushunasiz?
O’zgaruvchilarning tipini dinamik ravishda aniqlash operatori qaysi operator?
O’zgaruvchilarning tipini bir turga keltirisga misollar keltiring.
Dinamik turga ega bo’gan o’zgaruvchik\larni bir turga keltirish operatorlarini sanab o’ting/
Nomlar fasozi degan tusdunchaga isoh bering.
Namespace operatori va using directivalari tog’risida ma’lumot bering
Do'stlaringiz bilan baham: |