O que significa o duplo dois pontos "::" em C++?
Olá a todos! Recentemente comecei a estudar C++ e me deparei com uma construção que não consigo entender. No código, frequentemente encontro o duplo dois pontos "::", mas não tenho certeza do que ele faz.\n\nPor exemplo, vi este código:\n\n```cpp\n#include \n\nint main() {\n std::cout << "Hello" << std::endl;\n ::system("pause");\n return 0;\n}\n```\n\nAqui `std::cout` e `::system` — eu entendo que `std` é um namespace, mas por que antes de `system` tem um `::` solitário? Ou outro exemplo, quando escrevo minha própria classe:\n\n```cpp\nclass MyClass {\npublic:\n void print();\n};\n\nvoid MyClass::print() {\n std::cout << "Hello from MyClass" << std::endl;\n}\n```\n\nPor que ao definir o método fora da classe preciso escrever `MyClass::print`? Tentei remover `::` e o compilador reclama. Também vi em código de outras pessoas...