std::



  • Hallo, hab grad folgende Frage:

    Ich habe ein Header-file in dem ich eine Klassedeklaration stehen hab und ein .cpp file in dem ich die einzelnen Methoden implementiere. Unter anderem benutze ich cout in den Methoden. Das brachte mir zunächst Fehlermeldungen. Dann hab ich's mit

    using namespace std;
    

    probiert. Leider bekomme ich dann andere Fehlermeldungen. Wenn ich hingegen vor jeden cout Befehl std:: schreibe gehts auf einmal. Wo liegt der Unterschied? Hängt es damit zusammen, das ich die einzelnen Methoden mit

    Rückgabetyp Klassenname::Methodenname(parameter)
    

    implementiere und dies sich nicht mit using namespace std verträgt?

    Besten Dank im Voraus

    gruß
    kristian



  • xkris schrieb:

    Wo liegt der Unterschied?

    Der Unterschied liegt darin, dass du mit der Using-Direktive alles aus dem Namensraum std in den globalen Namensraum holst. Dadurch kannst du zwar das std:: weglassen. Dadurch kann es aber auch zu Namenskonflikten kommen, wenn es im globalen Namensraum Objekte, Klassen oder Funktionen gibt, die genauso heißen wie std-Objekte.

    xkris schrieb:

    Hängt es damit zusammen, das ich die einzelnen Methoden mit

    Rückgabetyp Klassenname::Methodenname(parameter)
    

    implementiere und dies sich nicht mit using namespace std verträgt?

    Nein.

    Woran es konkret liegt, lässt sich einfacher feststellen, wenn du verrätst, was diese "anderen Fehlermeldungen" sind.


Anmelden zum Antworten