Avatar ·

Was bedeutet das doppelte Doppelpunkt "::" in C++?

Hallo zusammen! Ich habe vor kurzem angefangen, C++ zu lernen und bin auf eine Konstruktion gestoßen, die ich nicht verstehe. Im Code kommt oft das doppelte Doppelpunkt "::" vor, aber ich bin mir nicht sicher, was es tut.\n\nZum Beispiel habe ich diesen Code gesehen:\n\n```cpp\n#include \n\nint main() {\n std::cout << "Hello" << std::endl;\n ::system("pause");\n return 0;\n}\n```\n\nHier sind `std::cout` und `::system` – ich verstehe, dass `std` ein namespace ist, aber warum steht vor `system` ein einzelner `::`? Oder hier ein weiteres Beispiel, wenn ich meine eigene Klasse schreibe:\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\nWarum muss man bei der Definition einer Methode außerhalb der Klasse `MyClass::print` schreiben? Ich habe versucht, `::` wegzulassen, und der Compiler hat gemeckert. Außerdem habe ich in fremdem Code gesehen...