021
22.01.2004, 00:07 Uhr
0xdeadbeef
Gott (Operator)
|
Moooment mal. Zum einen ist das hier keine Streiterei. Wir sticheln uns untereinander gelegentlich mal ein bisschen (nicht wahr, Windalf? ), aber Streit ist das noch lange nicht.
Zum Zweiten - was heißt hier weniger begabt? Meine Fresse, ich hab halt ein bisschen mehr Erfahrung als du. Ich hab auch ne Weile gebraucht, bis ich den Dreh raushatte. Meine ersten beiden größeren Projekte haben auch in ziemlich widerlichem Code geendet. Ich bin auch durch das ganze Programm an Anfängerfehlern gegangen. Und auch wenn ich rückblickend gesehen nicht stolz auf den Code bin, den ich da produziert habe, war das im Endeffekt doch ganz gut so - aus Fehlern lernt man halt am besten. Wieviel Talent du zum Programmieren hast, wird die Zeit zeigen - aber auch wenn der Code, den du hier gezeigt hast, nicht sonderlich schön war, habe ich das Gefühl, dass du die Grundprinzipien verstehst. Und glaub mir - beim Programmieren ist das mindestens drei Viertel der Miete.
Was die namespaces angeht, der Begriff ist eigentlich ziemlich selbsterklärend - es geht darum, eine Einheit von Dingen in einem Namensbereich zusammenzufassen, um später Verwechslungen zu vermeiden. std::string ist ein gutes Beispiel dafür - viele Bibliotheken liefern ihre eigene String-Klasse mit, und nicht selten nennen sie sie "string". std::string heißt soviel wie "string aus dem namespace std". net::string hieße "string aus dem namespace std". So ist es möglich, mehrere Klassen mit dem selben Namen zu basteln und sie trotzdem gleichzeitig benutzen zu können. "using namespace std;" bedeutet, dass der Linker nachher, wenn er im globalen namespace nichts findet, auch den namespace std nach einem Symbol durchsucht. Ich benutze das eher ungern und gebe die namespaces explizit mit an, weil man so auf einen Blick sieht, aus welchem namespace eine Klasse/Funktion/Symbol stammt. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |