بکندباز

علامت :: در C++

علامت :: در زبان برنامه‌نویسی C++ به عنوان عملگر محدوده‌ی سراسری یا عملگر دامنه (Scope Resolution Operator) شناخته می‌شود. این عملگر در موارد زیر استفاده می‌شود:

1. ارجاع به متغیر یا تابع سراسری:

اگر یک متغیر یا تابع در محدوده‌ی محلی (local scope) تعریف شده باشد و بخواهید به متغیر یا تابعی با همان نام در محدوده‌ی سراسری (global scope) دسترسی داشته باشید، از :: استفاده می‌کنید.

#include <iostream>
using namespace std;

int x = 10; // متغیر سراسری

int main() {
    int x = 20; // متغیر محلی
    cout << "Local x: " << x << endl;
    cout << "Global x: " << ::x << endl; // دسترسی به متغیر سراسری
    return 0;
}

خروجی:

Local x: 20
Global x: 10

2. ارجاع به اعضای کلاس:

برای دسترسی به توابع یا متغیرهای عضو یک کلاس، خارج از بدنه‌ی کلاس از :: استفاده می‌شود.

#include <iostream>
using namespace std;

class MyClass {
public:
    void display(); // اعلام تابع
};

// تعریف تابع خارج از کلاس
void MyClass::display() {
    cout << "Hello from MyClass!" << endl;
}

int main() {
    MyClass obj;
    obj.display();
    return 0;
}

3. ارجاع به مقادیر شمارشی (Enum):

برای دسترسی به مقادیر شمارشی تعریف‌شده در یک محدوده‌ی خاص.

#include <iostream>
using namespace std;

class MyClass {
public:
    enum Color { Red, Green, Blue };
};

int main() {
    MyClass::Color c = MyClass::Red; // استفاده از :: برای دسترسی به مقادیر شمارشی
    cout << "Color: " << c << endl; // خروجی: 0
    return 0;
}

4. ارجاع به فضای نام (Namespace):

برای دسترسی به اعضای فضای نام مشخص (namespace).

#include <iostream>
namespace MyNamespace {
    int x = 100;
}

int main() {
    cout << "Namespace x: " << MyNamespace::x << endl; // دسترسی به متغیر فضای نام
    return 0;
}

خروجی:

Namespace x: 100

5. در تعریف توابع در فضای نام (Namespace):

برای تعریف یا پیاده‌سازی توابع یک فضای نام.

#include <iostream>
namespace MyNamespace {
    void func(); // اعلام تابع
}

void MyNamespace::func() { // تعریف تابع
    std::cout << "Hello from MyNamespace!" << std::endl;
}

int main() {
    MyNamespace::func();
    return 0;
}

جمع‌بندی:

عملگر :: در C++ ابزاری قدرتمند برای کار با سطوح مختلف دامنه (scope) و دسترسی به اعضای کلاس‌ها، فضای نام‌ها و متغیرهای سراسری است.

backendbaz

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*