Avatar ·

¿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.