std::
-
Hey Leute..

meine Frage ist kurz ich möchte gerne wissen was dies bedeutet :"std::" z.B. vor "std::cout" oder "std::cin".
Denn es geht ja auch ohne wie ich es gelernt habe.

Gruß Skeptar
-
In C++ gibt es Namensräume (engl. namespaces). Wenn du einen Namen in einem Namensraum deklarierst, dann kannst du von außerhalb des Namensraums auf ihn zugreifen, in dem du den Namen des Namensraums, gefolgt vom sog. Scope-Operator ::, vor den Namen stellst*.
Beispiel:
namespace A { int zahl; } int main() { A::zahl = 7; }Alle Namen der Standardbibliothek sind im Namensraum
stddeklariert.
Weitere Informationen findest du in deinem Grundlagenbuch.~* (Edit) Habe ich gerade einen Zungenbrecher erfunden?~
-
Skeptar schrieb:
"std::" z.B. vor "std::cout" oder "std::cin".
Das läuft unter dem Begriff "namespace" und sollte in deinem Lehrbuch erklärt werden. Das ist eine zusätzliche Angabe zu einem Bezeicher, mit dem man Bezeichner in Kategorien einordnen kann, so dass es nicht zu Überschneidungen kommt. (Fast) alle Klassen, Funktionen und Objekte der Standardbibliothek liegen im Namespace "std". Diese Erklärung ist vermutlich etwas zu kurz, um dem Thema vollständig gerecht zu werden, das liest du später besser noch einmal selber nach. Als absoluter Anfänger solltest du es einfach als Teil des Namens betrachten.
Denn es geht ja auch ohne wie ich es gelernt habe.

Eigentlich nicht. Außer der Bezeichner wurde irgendwie im globalen Namensraum (also dem, wo man nichts davor schreiben braucht) bekannt gemacht, zum Beispiel mit einem passenden "using". Zum Beispiel wird gerne im Code (aber nicht in Headerdateien!)
using namespace std;benutzt, wodurch der gesamte(!) Namensraum std in den aktuellen (normalerweise der globale) Namensraum ausgeladen wird.