C++ Buch
-
danke für die schnellen Antworten,
hat den irgendwer Erfahrung mit dem zweiten Buch gemacht dass ich vorgeschlagen habe?
mfg spakken
-
C++ Primer PLUS soll wesentlich schlechter als der normale C++ Primer sein ( 4th Edition).
-
Zu dem zweiten Buch : Ich habe gerade das in einer Kundenrezesion gelesen :
"Um mal ein Beispiel zu nennen: Es wird zwar mitgeteilt, dass man am Anfang "using namespace std" hinschreiben muss, aber nicht wieso."Ohne das Buch zu kennen : Wer direkt am Anfang Sachen wie namespaces global und als ganzes zu verwenden lehrt, während man maximal 2 Funktionen davon verwendet, ist nicht grad der beste Lehrer. Kann sein dass der Rest des Buches gut ist, kenne es wie gesagt nicht. Aber mit C++ Primer 4th Edition kann man eig. nichts falsch machen. Das benötigte Englisch dazu ist auf 10.Klass Niveau.
-
Felixxx schrieb:
Zu dem zweiten Buch : Ich habe gerade das in einer Kundenrezesion gelesen :
"Um mal ein Beispiel zu nennen: Es wird zwar mitgeteilt, dass man am Anfang "using namespace std" hinschreiben muss, aber nicht wieso."Ohne das Buch zu kennen : Wer direkt am Anfang Sachen wie namespaces global und als ganzes zu verwenden lehrt, während man maximal 2 Funktionen davon verwendet, ist nicht grad der beste Lehrer.
Sehe ich gar nicht so. Wenn man Quelltext druckt, kämpft man um jedes Zeichen in der Breite. Deshalb ist das
usingsinnvoll.
-
1.) using std::BenötigteFunktion; wäre eine Möglichkeit trotzdem zurecht zu kommen. Wäre sogar kürzer da man sich "namespace" spart.
2.) Im Programm std::BeötigteFunktion so benutzen, wäre auch eine Möglichkeit
und 3.) Es geht wohl in einem Buch daraum, dem Leser sauberes Programmieren beizubringen und nicht daraum den Quelltext irgendwie ordentlich hinzubekommen. Das lässt sich schon irgendwie umsetzen.
-
zum C++ Primer: die deutsche Ausgabe gibt es ja zur Zeit nicht und wird wohl auch nicht so schnell nachgedruckt, und das mit dem Englisch will ich nicht, die Erklärungen muss ich schon in Deutsch vor mir haben um das da zu verstehen. Ich hab bei Amazon schon mal den Blick ins Buch gewagt, hab zwar den großteil verstanden, aberkomlexe Themen guck ich mit lieber auf deutsch an.
Ich versuche mich gerade zwischen Der C++ Programmierer und C++ lernen und professionell anwenden zu entscheiden.
Ein kleiner Fehler am Anfang ist meiner Meinung nach kein Grund das Buch nicht zu kaufen.
-
Ok, das mit dem "komplexe Themen lieber in Deutsch" verstehe ich, geht mir auch so.
Nein, eigentlich ist es das nicht, aber meistens deutet ein Fehler am Anfang auf weitere Fehler im Buch hin. Muss aber nicht so sein, wie gesagt : Ich weiß es nicht, da ich das Buch leider nicht kenne.
-
Felixxx schrieb:
1.) using std::BenötigteFunktion; wäre eine Möglichkeit trotzdem zurecht zu kommen. Wäre sogar kürzer da man sich "namespace" spart.
Wenn ich drei Namen brauche, soll ich also drei Zeilen für
using-Deklarationen verschwenden?2.) Im Programm std::BeötigteFunktion so benutzen, wäre auch eine Möglichkeit
-> Zeilenbreite.
und 3.) Es geht wohl in einem Buch daraum, dem Leser sauberes Programmieren beizubringen und nicht daraum den Quelltext irgendwie ordentlich hinzubekommen. Das lässt sich schon irgendwie umsetzen.
Darüber lässt sich trefflich streiten, ob man bei Hello-World-Programmen den std-Namensraum nicht aushebeln sollte.
-
Ja, 3 using Deklarationen statt einfach der ganzen. Das ist sauberes Coden und das sollte ein Anfänger auch so beigebracht bekommen. Natürlich kann man privat den ganzen Namespace verwenden, aber sauber ist es die einzelnen Funktionen per using-Deklaration zu verwenden oder eben mit Präfix std:: .
std:: würde bei wohl keinem Quellcode zur zu-weiten Breite führe. Zur Not unterbricht man die Ausgabe oder was auch immer man machen kann mit einem Absatz, macht auch keine Tragödie raus.
-
Ich sehe nicht, warum man mehrere Zeilen extra verschwenden sollte bei nem Codebeispiel von zehn Zeilen. Auch kann ich nicht nachvollziehen, dass durch explizites Qualifizieren die Breite nicht entscheidend vergrößert wird (wie oft geht der Code schon bis zum rechten Rand, dann noch std:: dazu?). Als Beispiel nenne ich noch
std::copy(std::istream_iterator<std::string>(std::cin), std::istream_iterator<std::string>(), std::back_inserter(foo)); copy(istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(foo));Da wir eh zu keinem Ergebnis kommen werde, verabschiede ich mich hiermit aus diesem Thread.
-
Michael E. schrieb:
Ich sehe nicht, warum man mehrere Zeilen extra verschwenden sollte bei nem Codebeispiel von zehn Zeilen. Auch kann ich nicht nachvollziehen, dass durch explizites Qualifizieren die Breite nicht entscheidend vergrößert wird (wie oft geht der Code schon bis zum rechten Rand, dann noch std:: dazu?). Als Beispiel nenne ich noch
std::copy(std::istream_iterator<std::string>(std::cin), std::istream_iterator<std::string>(), std::back_inserter(foo)); copy(istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(foo));Da wir eh zu keinem Ergebnis kommen werde, verabschiede ich mich hiermit aus diesem Thread.
Gründe, wieso man den namespace nicht ganz und auch nicht global deklarieren sollte :
http://www.cplusplus.com/forum/beginner/32514/std::copy(std::istream_iterator<std::string>(std::cin), std::istream_iterator<std::string>(), std::back_inserter(foo) );
-
Worüber ihr euch immer streitet...
Die meisten Bücher (und auch der C++ Primer iirc) schreiben doch einfach irgendwann so etwas wie: "Im folgenden werden wir zur Platzersparnis und besseren Lesbarkeit die eingangs besprochenen
usingDeklarationen sowie die#includes weglassen."Und damit ist das Thema gegessen und alle sind glücklich. Und der Anfänger, der das beim Abschreiben des Codes vergessen hat, wird das auch ziemlich schnell vom Compiler gesagt bekommen und den Fehler nicht noch einmal machen.
-
Es geht doch hier um den Anfang eines Buches! Der Leser hat noch keine Ahnung von der Sprache. Er weiß nicht was namespaces sind. Namenskonflikte und deren Lösung stehen weiter hinten auf der Liste. Es ist doch für den Lernenden einfacher, anfangs erstmal zu sehen wie Programmieren in C++ überhaupt geht.
Struppi macht das wohl einfach klüger (in seinem Anfängerbuch): der lagert für die ersten Gehversuche vieles an unnötigem Rauschen in einen Header aus, der anfangs includiert wird. sollte der User da mal reinschauen, stehen Kommentare drinnen. In dem Header steht unter Anderem auch "using namespace std;"... Böser Struppi :p
Weiter hinten, wenn man weiß wie sich C++ anfühlt, kann man auf Programmierpraktiken, guten Stil, usw. eingehen. Man kann das auch "didaktisch klug" nennen.
-
Der große Vorteil des "C++ Primer" ist zweifelsohne sein hochkarätiges Autorenteam. Stanley Lippman und Barbara Moo waren bei der Entwicklung von C++ von Anfang an dabei, und Josée Lajoie sitzt für IBM im zuständigen ISO-Komitee. Ähnliches gilt für "Accelerated C++" - Andrew Koenig als Erfinder des ADNL (auch "Koenig lookup"), und Barbara Moo kennen wir ja schon.
Autoren, die sehr genau wissen, was sie sich beim Entwurf der Sprache gedacht haben, sind, denke ich, gerade für Einsteigerbücher von unschätzbarem Wert. Wenn du eine deutsche Übersetzung eines dieser Bücher auftreiben kannst, liegst du damit auf keinen Fall falsch. Ansonsten...naja, Englisch wirst du als Programmierer eh lernen müssen; praktisch die gesamte Fachliteratur ist englisch.
Ansonsten könnte Einführung in die Programmierung mit C++ von Bjarne Stroustrup einen Blick wert sein - eine höhere Autorität in Bezug auf C++ gibt es wohl nicht. Ich muss allerdings betonen, dass ich das Buch nicht gelesen habe; meine Erwartung, dass es sich um ein gutes Buch handelt, beruht allein darauf, dass die Kompetenz des Autors über jeden Zweifel erhaben ist.
-
danke für die Antworten,
Einführung in die Programmierund mit c++ ist ein wenig zu teuer, es ist halt ein Weihnachtsgeschenk das höchstens 45 Euro kosten sollte.
Ich habe mir das nocheinmal durch den Kopf gehen lassen und habe mich für c++ lernen und Professionell anwenden entschieden.
Das A- Z nicht weil es anscheinend blöd ist, den Primer nicht weil er auf Englisch ist und Der c++ programmierer nicht weil der ein wenig zu anspruchsvoll ist, wäre blöd wenn ich das nicht verstehe was da drin steht.
Da anscheinend keiner das Buch kennt schreibe ich dann irgendwann nach Weihnachten rein ob das eine gute Entscheidung war.
Mfg spakken