Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

1

28.12.2011, 18:28

C++: Using namespace

Hi, ich lese grad das C++ Buch für Spieleprogrammierer von Heiko Kalista, da finden sich wie ich vermute in allen Programmierbüchern Quellcodes, im ersten wird so ziemlich
Alles erklärt. Ich verstehe aber anch mehrmaligem lesen nicht, wozu die stelle "using namespace std;".Wofür "std" steht weiß ich, wird aber Zensiert... Aber was bringt mir die Zeile im eigentlichen?

MfG

m3xx

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

28.12.2011, 18:33

Zensiert wird es, weil sich "Standard" mit "d" hinten schreibt und nicht mit "t". Es handelt sich nicht um eine spezielle Art zu stehen!

Zu Deiner Frage: http://lmgtfy.com/?q=c%2B%2B+keyword+using

PS: Willkommen im Forum, benutze es aber bitte nicht als Google-Ersatz.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

28.12.2011, 18:35

Namespaces kannst du dir wie Ordner im Windowsexplorer vorstellen. Darin befindet sich z.B. cout. Lässt du die Zeile weg musst du std::cout schreiben um drauf zugreifen zu können.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

4

28.12.2011, 18:37

std ist der Name des Namensraumes, des "Namespace".
Mit using namespace std; sparst du dir vor cout das std zu setzen, damit der Compiler weiß, wo er das suchen muss.
Sprich: Die Zeile lässt dich das nicht machen brauchen, jetzt rein fiktives Beispiel:

C-/C++-Quelltext

1
std::cout << std::endl;


MfG
Check

5

28.12.2011, 20:07

Jup, und welche Variante man benutzen sollte (using, oder namespace jedesmal explizit angeben), darüber wurden hier schon so manche Diskussionen geführt, ich denke, das wollen wir jetzt nicht wiederholen, da sich die Argumente kaum geändert haben werden. Einfach mal hier im Forum stöbern.
Lieber dumm fragen, als dumm bleiben!

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

6

02.01.2012, 23:13

ok, das hab ich jetz verstanden, aber da tut sich eine Frage auf.
Ist es net einfach besser immer "using namepace std;" zu schreiben statt vor jeder Zeile (wo es benötigt wird) "std::" zu schreiben?

FSA

Community-Fossil

  • Private Nachricht senden

7

02.01.2012, 23:46

Nicht immer, nein. Wenn du zB ein eigenen Namespace namens BlaBlub hast, und es dort eine Variable a gibt, und du ebenfalls ein Namespace namens Spinat hast, wo es auch eine Variable a gibt, musst du BlaBlub::a schreiben wenn du auf BlaBlubs a zugreifen willst. Sonst gibt es entweder eine Fehler oder du änderst gleich beide a Variablen. Und jetzt mal Kritik zu den Namen der namespaces :D

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

8

03.01.2012, 00:22

Ob besser oder schlechter kann man nicht allgemein sagen, es ist ein Stück weit eine Geschmacksfrage. Manchmal ist es ziemlich eindeutig, manchmal ziemlich egal.
Wenn du es zu oft benutzt, köntnest du Namenskonflikte kriegen, die du entweder durch explizites Ausschreiben des Namens (also im Beispiel von FSA Spinat::a und BlaBlub::a, wtf?) oder durch entfernen des usings beheben kannst.
Wie gesagt, einen Haufen Argumente solltest du über die Forensuche finden, aber wenn du das Prinzip dahinter verstanden hast, kannst du dir auch eine eigene Meinung bilden (nie verkehrt).
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige