:: 作用域解析运算符
它用于指定一个特定范围的成员,比如类、结构体或枚举的成员,或者全局作用域中的某个实体。
作用如下:
1.访问类、结构体或联合的静态成员:静态成员属于类本身而不是类的某个对象,因此可以使用作用域解析运算符来访问它们。
class MyClass {
public:
static int staticValue;
};
int MyClass::staticValue = 42;
int main() {
cout << MyClass::staticValue; // 输出 42
}
2.在派生类中访问基类的成员:当派生类覆盖了基类中的成员时,可以使用作用域解析运算符来访问基类中被覆盖的成员。
class Base {
public:
void func() { cout << "Base::func" << endl; }
};
class Derived : public Base {
public:
void func() { cout << "Derived::func" << endl; }
};
int main() {
Derived d;
d.Base::func(); // 调用基类中的 func 函数
}
3.访问全局作用域中的变量或函数:当局部作用域中有一个与全局作用域中的变量或函数同名的实体时,可以使用作用域解析运算符来访问全局作用域中的实体。
int value = 10;
void func() {
int value = 20;
cout << ::value; // 输出全局作用域中的 value,即 10
}