::
是 C++ 中的作用域解析运算符(scope resolution operator)。它用于指定某个名字(如类、函数、变量等)所属的作用域或命名空间。
::
的作用是帮助明确区分不同作用域中的名字,避免命名冲突和提高代码的可读性。
主要用法:
1.访问命名空间成员:
std::cout << "Hello, World!" << std::endl;
std::
是命名空间的前缀,cout
和endl
是标准库中的对象和函数。
2.访问类的静态成员:
class MyClass {
public:
static int myValue;
};
int MyClass::myValue = 42; // 定义静态成员变量
MyClass::myValue
用于指定myValue
是MyClass
类的静态成员。
3.访问基类的成员:
class Base {
public:
void show() { std::cout << "Base class" << std::endl; }
};
class Derived : public Base {
public:
void show() { std::cout << "Derived class" << std::endl; }
void callBaseShow() { Base::show(); } // 调用基类的 show 方法
};
Base::show()
用于调用基类Base
的show
方法。
4.避免名字冲突:
namespace MyNamespace {
int value = 10;
}
int value = 20;
int main() {
std::cout << MyNamespace::value << std::endl; // 输出 10
std::cout << value << std::endl; // 输出 20
}
MyNamespace::value
用于访问MyNamespace
命名空间中的value
变量,避免与全局变量value
冲突。