Que signifie le double deux-points "::" en C++ ?
Bonjour à tous ! J'ai récemment commencé à apprendre le C++ et je suis tombé sur une construction que je ne comprends pas. Dans le code, on rencontre souvent le double deux-points "::", mais je ne suis pas sûr de ce qu'il fait.\n\nPar exemple, j'ai vu ce code :\n\n```cpp\n#include \n\nint main() {\n std::cout << "Hello" << std::endl;\n ::system("pause");\n return 0;\n}\n```\n\nIci, `std::cout` et `::system` — je comprends que `std` est un espace de noms, mais pourquoi y a-t-il un seul `::` devant `system` ? Ou encore un autre exemple, quand j'écris ma propre 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\nPourquoi, lors de la définition de la méthode en dehors de la classe, faut-il écrire `MyClass::print` ? J'ai essayé d'enlever `::` et le compilateur râle. J'ai aussi vu dans le code d'autres personnes...