¿Qué significa el doble dos puntos "::" en C++?
¡Hola a todos! Recientemente empecé a aprender C++ y me encontré con una construcción que no puedo entender. En el código a menudo aparece el doble dos puntos "::", pero no estoy seguro de qué hace.
Por ejemplo, he visto este código:
```cpp
#include
int main() {
std::cout << "Hello" << std::endl;
::system("pause");
return 0;
}
```
Aquí `std::cout` y `::system` — entiendo que `std` es un namespace, pero ¿por qué antes de `system` hay un `::` solitario? O también este ejemplo, cuando escribo mi propia clase:
```cpp
class MyClass {
public:
void print();
};
void MyClass::print() {
std::cout << "Hello from MyClass" << std::endl;
}
```
¿Por qué al definir el método fuera de la clase necesito escribir `MyClass::print`? Intenté quitar `::` y el compilador se queja. También vi en código de otros algo como `::std::vector` — ¿por qué dos dobles puntos antes de `std`? ¿Quizás está relacionado con el ámbito global? Por favor, expliquen qué significa este operador y en qué situaciones se usa.