# include # include // Yangi ismlar sohasini aniqladik namespace mathematics { const double Pi = 3.14159265358979; double hajm(double radius); // sharning hajmi uchun - 4/3 * Pi * r^3 double hajm(double a, double b, double s) // kubning hajmi uchun - abc } using namespace mathematics; int main() { double d = 5.99; // sharning radiusi int x = 7, y = 18, z = 43; cout << "Sharninig hajmi: " << hajm(d) << endl; cout << "Kubning hajmi: " << hajm(x,y,z) << endl; return (0); } double mathematics::hajm(double radius) { return ( (Pi * pow(radius,3) * 4.0) / 3.0 ); } double mathematics::hajm(double a, double b, double c) { return ( a * b * c ); } Ekranda: Sharning hajmi: 900.2623 Kubning hajmi: 5418 Yuqoridagi dasturda yangi ismlar sohasini aniqladik, unda Pi konstantasini
e'lon qildik. shaqning hajmini hisoblashda standart kutubhonadagi pow()
funksiyasini ishlatdik, shu sababli e'lon faylini # include ifodasi
bilan kiritdik. Ismlar sohasida joylashgan funksiyalarni aniqlash uchun, yani
ularning tanasini yozish uchun biz ilarning to'liq ismini berishimiz kerak.
Albatta, agar funksiya ismlar sohasining ichida aniqlangan bo'lsa, tashqarida
boshqattan yozib o'tirishning hojati yo'q. hajm() funksiyalarining to'liq
ismi mathematics::hajm(...) dir. :: operatori sohalarni bog'lovchi
operatordir. Yangi ismlar sohasini faqatgina misol tariqasida berdik, uni
funksiya yuklanishlari bilan hech qanday aloqasi yo'qdir. Funksiya ismlari
yuklanishi, ko'rib turganimizdek, juda qulay narsadir.
Funksiya yuklanishini qo'llaganimizda, funksiyalar argumentlarining berilgan
qiymatlarini ehtiyotkorlik bilan qo'llashimiz lozim. Masalan bizda ikkita
funksiyamiz bor bo'lsin.
foo(int k = 0); // berilgan qiymati 0
foo();
Bu ikki funksiya yuklatilgan. Lekin agar biz birinchi funksiyani dasturda
argumentsiz chaqirsak, kompilyator qaysi funksiyani chaqirishni bilmaydi, va
shu sababli hato beradi. Biroq bu deganimiz funksiya yuklanishi bilan berilgan
qiymatlar qo'llanilishi mumkin emas deganimiz emas, eng muhimi funksiya
chaqirig'ini ikki hil tushunish bo'lmasligi kerak.