علامت ::
در زبان برنامهنویسی 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) و دسترسی به اعضای کلاسها، فضای نامها و متغیرهای سراسری است.
دیدگاهها