Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الـ Namespaces والـ Scope

جزء من قسم Object Oriented Programming في رحلة C++ على Coddy — الدرس 4 من 104.

تقوم مساحات الأسماء (Namespaces) بتجميع الأكواد البرمجية ذات الصلة معاً وتمنع تعارض الأسماء. يقوم معامل دقة النطاق (scope resolution operator) :: بالوصول إلى العناصر الموجودة داخل مساحة الأسماء.

إنشاء مساحة اسم (namespace)

namespace MathTools {
    int add(int a, int b) {
        return a + b;
    }
}

الوصول باستخدام عامل دقة النطاق ::

int result = MathTools::add(5, 3);  // result = 8

استخدام التوجيه لتجنب كتابة مساحة الاسم في كل مرة

using namespace MathTools;
int result = add(5, 3);  // مماثل لـ MathTools::add(5, 3)

نطاق الأسماء std

std::cout << "Hello" << std::endl;
// أو
using namespace std;
cout << "Hello" << endl;

تنظم مساحات الأسماء (Namespaces) الكود وتمنع تصادم الأسماء. تحتوي مساحة الأسماء std على جميع ميزات مكتبة C++ القياسية مثل cout و cin و string و endl.

challenge icon

التحدي

متوسط

قم بإنشاء دوال داخل مساحة الأسماء MathTools:

  • add(int a, int b) — تعيد المجموع
  • multiply(int a, int b) — تعيد حاصل الضرب

قم بالتصريح عنها في MathTools.h وتنفيذها في MathTools.cpp.

ورقة مرجعية

تقوم مساحات الأسماء (Namespaces) بتجميع الأكواد ذات الصلة معاً ومنع تضارب التسميات. يقوم عامل دقة النطاق (scope resolution operator) :: بالوصول إلى العناصر الموجودة داخل مساحة الاسم.

إنشاء مساحة اسم:

namespace MathTools {
    int add(int a, int b) {
        return a + b;
    }
}

الوصول باستخدام دقة النطاق :::

int result = MathTools::add(5, 3);  // result = 8

استخدام التوجيه (directive) لتجنب كتابة مساحة الاسم في كل مرة:

using namespace MathTools;
int result = add(5, 3);  // نفس MathTools::add(5, 3)

تحتوي مساحة الاسم std على جميع ميزات مكتبة C++ القياسية مثل cout و cin و string و endl:

std::cout << "Hello" << std::endl;
// أو
using namespace std;
cout << "Hello" << endl;

جرّب بنفسك

#include <iostream>
#include "MathTools.h"

int main() {
    int a, b;
    std::cin >> a >> b;
    
    std::cout << "Add: " << MathTools::add(a, b) << std::endl;
    std::cout << "Multiply: " << MathTools::multiply(a, b) << std::endl;
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming