Vollständige Version anzeigen : [C++] Namespaces wechseln


.x-tra
01.02.2014, 23:17

Und zwar..;eigentlich eine dumme Frage, aber ich bin c++ neuling und wüsste gern darauf eine antwort.
Und zwar wenn man z;b. ohne direkt einen namespace festzulegen std::cout nimmt ist alles klar;cout aus dem namespace standard.
Aber was ist wenn man einen namespace nun zu beginn festlegt um sich solche sahcen wie std:: zu sparen und am ende gibt es doch gleichnamige funktionen.
Man kann doch sicher mehrere namespaces zur nutzung "einstellen", oder?
Oder muss man dann immer wechseln?bzw. wie funktioniert das überhaupt?
Immer den namespace:: anzugeben ist schon sehr aufwendig

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
-Terrorist-
02.02.2014, 02:28

Ich versteh nicht genau was du willst, aber ich glaube die willst nicht immer std:: schreiben vor dem cout etc..;? Falls ja mach einfach

#include <iostream>
using namespace std;
cout << "hallo" << endl;

dann klappts auch :)


terraNova
02.02.2014, 04:07

Soweit ich weiß, ist es nicht möglich Namen zu überschreiben, daher schätze ich einfach mal, das es zu Fehlermeldungen kommt.
Was du machen kannst, ist, über using (C++11, Bsp;: "using cout = std::cout") oder typedef zu arbeiten, wenn Du zu faul bist den NS-Prefix zu benutzen.


.x-tra
02.02.2014, 10:59

Letztes wäre eine Möglichkeit.
Ich meine aber Namespaces sind ja dazu da um eventuelle Überschneidungen zu vermeiden.
Was ist wenn jetzt in 2 namespaces identische funktionen vom namen her liegen.
Oder kann man nur immer einen namespace mit using einstellen?


terraNova
02.02.2014, 17:44

Du bist ein wenig ungenau. Was genau willst Du jetzt wissen? Die Auswirkungen wenn Du 2 Namensräume verwendest und ein Name identisch ist oder schlicht ein identischer Name in 2 Namensräumen? Da hatte ich Ersteres bereits erwähnt und das Letztere beantwortet sich mit: Es ist alles in Ordnung, solange sich die Namen nicht treffen, was nicht passiert, da sie in unterschiedlichen NS existieren.


Murdoc
02.02.2014, 19:59

Wenn zwei namespaces ein Symbol mit dem gleichen Namen exportieren beanstandet der Compiler dein Vorhaben sobald du ein solches Symbol verwendest.
Ansonsten passiert nichts weiter.

Kein Problem:
namespace foo {
int baz = 10;
}

namespace bar {
void baz(int& i) { i += 1; }
}

using namespace foo;
using namespace bar;

int main() {
return 0;
}


Problem:
namespace foo {
int baz = 10;
}

namespace bar {
void baz(int& i) { i += 1; }
}

using namespace foo;
using namespace bar;

int main() {
int i = 0;
baz(i); /* problem: reference to 'baz' is ambiguous */
return i - 1;
}


Tipp: Vermeide `using namespace xyz;`


Ähnliche Themen zu [C++] Namespaces wechseln
  • Uni wechseln
    Hallo Leute! Ich habe eine Frage bezüglich dem Wechsel der Universität. Aktuell studiert ein Freund von mir Bauingenieurwesen an der Uni Wtal, da er an der TU Dortmund auf Grund des NC's und seines Zeugnisdurchschnitts nicht genommen wurde. Nun ist ein Jahr (sprich 2 Semester) ins Land gegangen [...]

  • zu D1 wechseln
    Hey;) Mir ist öfters in letzter Zeit aufgefallen, dass immer mehr Leute ein D1 Netz haben. Viele meiner Freunde meckern rum, dass ich kein D1 hab und dass es dann zu teuer wird eine sms zu schreiben oder anzurufen(habe Eplus Aldi Talk). Ich möchte mir jetzt endlich auch mal D1 zulegen, aber ich [...]

  • Ip Wechseln !!!
    Hallo und Guten Abend Liebe Board Mitglieder Ich habe Neues Internet Unitymedia und ich möchte schnell und efektiv meine ip ändern. ich habe Router-control ausprobiert aber es gibt dort meinen router nicht denke er ist zu neu. gibts es noch andere Programme die nicht sehr kompliziert sind und [...]

  • [.NET] VB: Keine Namespaces für Irrlicht!
    Guten Tag, ich habe alles bereits mit Bildern beschrieben: (;board;gulli~com/thread/1272025-vbnet-irrlicht-engine-keine-namespaces-verfgbar/) muss ich ja nicht alles neu machen, oder? naja ich hoffe, ihr könnt mir helfen, bekommen bei gulli nämlcihe keine antworten :S [...]



raid-rush.ws | Imprint & Contact pr