C++中的双冒号"::"是什么意思?
大家好!我最近开始学习C++,遇到了一个我不理解的语法结构。在代码中经常看到双冒号"::",但我不确定它的作用。\n\n例如,我见过这样的代码:\n\n```cpp\n#include \n\nint main() {\n std::cout << "Hello" << std::endl;\n ::system("pause");\n return 0;\n}\n```\n\n这里的`std::cout`和`::system`——我明白`std`是一个命名空间,但为什么`system`前面有一个单独的`::`?或者另一个例子,当我编写自己的类时:\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\n为什么在类外定义方法时必须写`MyClass::print`?我试着去掉`::`,编译器就会报错。我还看到别人的代码中有类似`::std::vector`的写法——为什么`std`前面有两个冒号?也许这与全局作用域有关?请解释一下这个运算符的含义以及它在哪些情况下使用。