[C/C++] Einfache Frage zu namespace

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von .x-tra, 4. Juli 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 4. Juli 2008
    Einfache Frage zu namespace

    ich fange gerade mit c++ an, und mich beschäftigt gerade eine frage, weil ich beim lernen vorausschauend denke, und mich etwas gefragt habe.

    bei der simplen ausgabe via "cout" wird ja der namespace std angegeben, soweit ist das klar, aber was ist wenn ich andere dateien includiere, und in meinem programm verschiedene namespace angeben müsste.

    muss ich dann am anfang des programmes alle namespace angeben, oder jedesmal wenn eine dies betreffende funktion bzw. befehl aufgerufen wird?

    also das am anfang des programms bereits festgelegt wird, in welchen namespaces sich alle befehle befinden können, und der compiler dann später eben bei einem unbekannten befehl alle vorher angegebenen namespaces durchsucht.

    wäre lieb, wenn mir das jemand kurz erklären könnte.
     
  2. 4. Juli 2008
    AW: Einfache Frage zu namespace

    Also die Namensräume ( namespaces ) kannst du, wie du es schon gesagt hast, am Anfang
    des Quellcodes festlegen, damit alle Funktionen, Klassen, o.Ä. nicht mehr durch einen namespace angegeben werden muss, denn wir haben diese ja ausgewählt.

    Du kannst das aber auch weglassen und bei jeder Funktion, Klasse, o.Ä. den Namensraum mit angeben.

    Die 2. Art wäre sinnvoll um sicherzugehen das alles i.O. ist, beispielsweise könnten 2 Namensräume ja die gleiche Klasse haben .
     
  3. 4. Juli 2008
    AW: Einfache Frage zu namespace

    genau, das meinte ich nämlich als problem, dass es dann nicht zwei gleiche namensräume gibt, nur mit unterschiedlichem inhalt.

    wie gesagt, fange eben erst an mit dem ganzen, das hab ich aber auf jeden fall verstanden.

    danke dir
     
  4. 4. Juli 2008
    AW: Einfache Frage zu namespace

    Um auf cout zuzugreifen, wenn man den namespace std nicht vorher festgelegt hat, geht man so vor:

    std::cout << "bla bla bla" << endl;

    Mit 2 Doppelpunkten
    So kannst du das auch bei anderen namespaces machen.
    Wird auch bei Klassen wieder gebraucht.
     
  5. 4. Juli 2008
    AW: Einfache Frage zu namespace

    schon, aber ich hab jetzt mal einen quellcode gesehen, wo ganz oben alle include dateien standen und eben darunter sämtliche namespace die gebraucht werden.

    ich mein jetzt, jede include hat ihre namespaces, oder?
    und ich hatte nur die befürchtung, dass c++ dann nicht weiß, wenn am anfang alle namespaces genannt werden, dann nicht weiß, in welcher include welcher namespace drin ist.

    aber das scheint wohl nicht zu sein, d.h. am anfang alle benötigen headerdateien includen, und man kann darunter alle namespace benennen, richtig?

    aber eben über die umständlichere methode.
    bsp.: std::cout << "blabla" << endl;

    habe ich das so richtig verstanden.
     
  6. 4. Juli 2008
    AW: Einfache Frage zu namespace

    Nein, nur die .cpp-Datei in der die using-Anweisung steht, hat zugriff auf den Namespace.

    Bsp:
    test.cpp:
    Code:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
     cout << "test" << endl;
     return 0;
    }
    
    abc.cpp:
    Code:
    #include <iostream>
    
    void foo()
    {
     // cout << test << endl; <- geht nicht
     std::cout << test << std::endl;
    }
    
     
  7. 4. Juli 2008
    AW: Einfache Frage zu namespace

    das war mir klar, aber du hast es glaub ich nicht verstanden wie ich meine.

    stell dir vor ich include am anfang einer .cpp 2 header dateien.

    in jeder dieser header dateien gibt es zwei namespace.

    kann ich dann einfach
    Code:
    #include <bla.h>;
    #include <blu.h>;
    
    namespace a;
    namespace b;
    namespace c;
    namespace d;

    angeben, ODER kann ich sozusagen in EINER Datei nur einmal einen namespace obig festlegen und ansonsten via [namespace]::abcd .........

    ich weiß ja nicht ob c++ letztendlich sich die namespaces aus allen includes nimmt und in einen topf wirft, und weiß, wo was ist.

    alles auf eine datei bezogen natürlich.

    zwar hab ich den sinn oder unsinn von namespace noch nicht verstanden, aber okay.
    würde doch reichen, wenn man in der headerdatei eben bestimmte functionen hat.
    egal, das ist ein anderes thema, wo ich wahrscheinlich noch bisschen lernen muss.
     
  8. 4. Juli 2008
    AW: Einfache Frage zu namespace

    Erledigt + Doku lesen (Wikibooks, dein C++-Buch)

    ~closed~

    Mfg,

    Kolazomai
     
  9. 4. Juli 2008
    AW: Einfache Frage zu namespace

    ein einfaches ja oder nein, wäre besser und weniger buchstaben gewesen.
    am besten bei jeder frage closen, und auf andere informationsquellen verweisen.

    ich mach hier trotzdem wieder zu, wenn mir jemand meine frage beantworten kann, bitte ich um pn, ich verteil iwo ne bw dafür.
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.