Frage zu namespace



  • Ich hab mal eine Frage zu namensräumen die mir aus meinen Texten nicht klar wurde:

    Wenn ich in einem Programm mehrere namensräume mit using angebe sind diese dann quasi geschachtetlt oder heben die sich dann gegenseitig wieder auf .

    also :

    using namespace std;
    using namespace privat1;
    a = 42;
    
    using namespace privat2;
    
    cout << a << endl;
    

    oder so ähnlich.

    Funktionieren tut das Programm ja aber was passiert da genau ?



  • sono schrieb:

    Funktionieren tut das Programm ja aber was passiert da genau ?

    nö funktioniert nich

    wenn privat1 und privat2 eine variable mit demselben namen enthalten, du beide mit using einbindest und der variable danach einen wert zuweist, kannst du nicht mehr übersetzen weil der kompiler nimmer weiss welche der beiden variablen er nehmen soll



  • wenn is using verwendet dann ist ab da dann der namensraum aktiv den ich use und der wird auch nicht inaktiv wenn ich noch einen anderen namensraum per using einbinde .

    das führt dann zu problemem wenn ich in beiden namensräumen mindestens eine gleichnahmige variabel habe.

    Hab ich das so richtig verstanden ?

    Gruß Sono



  • sono schrieb:

    Hab ich das so richtig verstanden ?

    exakt. deshalb sollte man "using namespace" nicht zu großzügig verwenden.



  • Ok sehr schön.

    Danke euch beiden.


Anmelden zum Antworten