(Besonderes) C++ Buch
-
Also den Eindruck wollte ich nicht erwecken, dass ich mich für einen fortgeschrittenen Programmierer halte, da ich eben weiß, dass ich große Lücken habe.
Danke für das Lob!
Das mit dem system ist mir auch aufgefallen.. allerdings gehört das bei mir schon fast zu int main() wie das return 0;
Jedoch compilierts bei mir ohne cstdlib :o Benutze Visual C++ 2010 Express
-
supermix schrieb:
Jedoch compilierts bei mir ohne cstdlib :o Benutze Visual C++ 2010 Express
Der Grund ist:
Du inkludierst iostream, das wiederum inkludiert istream, das inkludiert ostream, das inkludiert ios, das inkludiert xlocnum und das inkludiert schliesslich:
climits
cmath
cstdio
cstdlib
streambufP.S.: Wenn du kein Anfängerbuch lesen möchtest, dann lies dir doch "The C++ Programming Language" vom Stuppi durch. Einem absoluten Anfänger würde man das Buch sicherlich niemals empfehlen, aber jemandem der schon einige Grundkenntnisse besitzt sicherlich.
Nach jedem Kapitel werden Aufgaben gestellt, die es teilweise auch in sich haben. Manchmal muss man nur Fehler finden, bestehenden code korrigieren oder ähnliches. Aber es werden auch wesentlich anspruchsvollere Aufgaben gestellt, für die man schon ne Weile braucht und die nicht so trivial sind.Kleines Beispiel (Chapter 10 - Classes):
11. (*3) Define a class for analyzing, storing, evaluating, and printing simple arithmetic expressions consisting of integer constants and the operators +, ,
*, and /. The public interface should look like this:
class Expr {
// ...
public:
Expr (char *);
int eval();
void print();
};The string argument for the constructor Expr::Expr() is the expression. The function Expr::eval() returns the value of the expression, and Expr::print() prints a representation of the expression on cout. A program might look like this:
Expr x("123/4+123*43");
cout << "x = " << x.eval() << "\ n ";
x.print();
Define class Expr twice: once using a linked list of nodes as the representation and once using a character string as the representation. Experiment with different ways of printing the expression:
fully parenthesized, postfix notation, assembly code, etc.
-
Besondere C++-Bücher, was soll das sein?
Für Fortgeschrittene eignen sich
und
-
SeppJ schrieb:
cooky451 schrieb:
Das muss man 1. erst einmal kennen (das wollte ich testen) und 2. ist das nicht die optimale C++-Lösung zum Sortieren (das wollte ich auch testen) und ich bin daher erstaunt, dass du dieses vorschlägst.
Hm.. vielleicht habe ich mich um diese Uhrzeit einfach im Forum geirrt, ich meine natürlich sort.
-
inter2k3 schrieb:
supermix schrieb:
Jedoch compilierts bei mir ohne cstdlib :o Benutze Visual C++ 2010 Express
Der Grund ist:
Du inkludierst iostream, das wiederum inkludiert istream, das inkludiert ostream, das inkludiert ios, das inkludiert xlocnum und das inkludiert schliesslich:
climits
cmath
cstdio
cstdlib
streambufAber SeppJ hat sicher den Code per Copy&Past übernommen und compiliert, d.h beim sollte doch der selbe Vorgang stattfinden, oder? Und falls er iostream übersehen hat, könnte er doch nicht einmal cout/cin nutzen, oder?
inter2k3 schrieb:
P.S.: Wenn du kein Anfängerbuch lesen möchtest, dann lies dir doch "The C++ Programming Language" vom Stuppi durch. Einem absoluten Anfänger würde man das Buch sicherlich niemals empfehlen, aber jemandem der schon einige Grundkenntnisse besitzt sicherlich.
Nach jedem Kapitel werden Aufgaben gestellt, die es teilweise auch in sich haben. Manchmal muss man nur Fehler finden, bestehenden code korrigieren oder ähnliches. Aber es werden auch wesentlich anspruchsvollere Aufgaben gestellt, für die man schon ne Weile braucht und die nicht so trivial sind.Kleines Beispiel (Chapter 10 - Classes):
11. (*3) Define a class for analyzing, storing, evaluating, and printing simple arithmetic expressions consisting of integer constants and the operators +, ,
*, and /. The public interface should look like this:
class Expr {
// ...
public:
Expr (char *);
int eval();
void print();
};The string argument for the constructor Expr::Expr() is the expression. The function Expr::eval() returns the value of the expression, and Expr::print() prints a representation of the expression on cout. A program might look like this:
Expr x("123/4+123*43");
cout << "x = " << x.eval() << "\ n ";
x.print();
Define class Expr twice: once using a linked list of nodes as the representation and once using a character string as the representation. Experiment with different ways of printing the expression:
fully parenthesized, postfix notation, assembly code, etc.Also ich muss sagen, dass ich passen muss. Ich verstehe die Aufgabenstellung überhaupt nicht, was aber sicher zu einem Teil an dem Englisch nicht. Nicht dass ich kein Englisch kann, aber wenn einem etwas unklar ist und dann noch mal evt. unbekannte Begriffe dazukommen, dann hört es bei mir auf
SeppJ schrieb:
Hmm, da muss was schwierigeres her, muss nachdenken.
Also es soll nun eigentlich nicht so werden, dass ihr mir hier Aufgaben bringt und ich löse sie solange, bis mein Wissen dafür nicht mehr ausreicht, weil dann weiß ich immer noch nicht, welches Buch
Wenn euch das aber hilft, mich einzuschätzen, dann bin ich gern bereit, an meine Grenzen geführt zu werden@ghjghj: Wie soll man das verstehen?
Eine URL ist alles, was mit den Ziffern A-Z, 0-9, den Zeichen: ., ;, ?, /, =, &, - und # endet?@Mike634: Wenn du dir meinen Anfangspost durchliest, dann wirst du sicher verstehen, was ich mit "besonders" meinte
Nämlich ein (Anfänger-)Buch, dass das jeweilige Kapitel mit Aufgaben abschließt. So in etwa wie inter2k3 es vorgeschlagen hat!
@alle: noch mal: ich will nicht den Eindruck erwecken, dass ich mich selbst für einen fortgeschrittenen Programmierer halte! Das bin ich bei weitem nicht und das weiß ich auch. Falls dieser Eindruck entstanden ist, tut es mir natürlich leid!
-
supermix schrieb:
inter2k3 schrieb:
supermix schrieb:
Jedoch compilierts bei mir ohne cstdlib :o Benutze Visual C++ 2010 Express
Der Grund ist:
Du inkludierst iostream, das wiederum inkludiert istream, das inkludiert ostream, das inkludiert ios, das inkludiert xlocnum und das inkludiert schliesslich:
climits
cmath
cstdio
cstdlib
streambufAber SeppJ hat sicher den Code per Copy&Past übernommen und compiliert, d.h beim sollte doch der selbe Vorgang stattfinden, oder? Und falls er iostream übersehen hat, könnte er doch nicht einmal cout/cin nutzen, oder?
Er hat vermutlich einen anderen Compiler genutzt als du - ob und wie sich die System-Header gegenseitig einbinden, ist durch den Standard nicht festgelegt. Also darfst du dich auch nicht darauf verlassen, daß ein bestimmter Header indirekt eingebunden wird.
-
system
sollte doch allgemein vermieden werden, nicht?
-
Zum Thema Buch nochmals:
Das von Mike634 zuerst verlinkte Buch "Effektiv C++ programmieren" von Scott Meyers würde ich dir erstmal nicht empfehlen. Dies ist eher eine empfehlenswerte Lektüre, wenn du bereits ein Grundlagenbuch gelesen hast und mit der Sprach vertraut bist.
Allerdings ist das zweite verlinkte Buch "vermutlich" genau das, was ich dir auch empfohlen habe. Ich kenne die deutsche Ausgabe zwar nicht, aber ein kurzer Blick in das Inhaltsverzeichnss zeigt, dass es zuminest genauso strukturiert ist die die englische Ausgabe. Ebenfalls scheinen wohl alle Kapitel mit den Kernaussagen und Übungen zu enden.
Und du hast nicht das Problem, dass dir die englische Sprache das Verständniss erschwert. (Tip: versuch später trotzdem mal englische Literatur zu lesen. Meist ist es garnicht so schwierig und es ist nunmal so, dass die meiste Fachliteratur in englischer Sprache verfasst wird - daher hilfreich).
-
Vielleicht wäre "Der C++ Programmierer" von Ulrich Breymann etwas für Dich.
Nach Aussage des Verlags/Autors ein Praxisbuch für Einsteiger und Profis.
Es enthält u.a. 85 Übungsaufgaben nebst Lösungen.s. auch http://www.cppbuch.de/
-
Apropos C++-Buch. Kennt jemand ein gutes Buch, wie das von Bjarne Stroustrup (Die C++-Programmiersprache) mit C++0x?
Hätte gerne mit drin, z.B. die neuen Lambda-Ausdrücke usw.
Zur Zeit sind die Bücher über C++0x ja ziemlich rar.
-
Na das ist ja nicht mal standardisiert
. Sollen sich die Autoren an den WD halten?
-
EOutOfResources schrieb:
Na das ist ja nicht mal standardisiert
. Sollen sich die Autoren an den WD halten?
Der Final Draft ist schon seit März fertig und liegt gegenwärtig der ISO zur Standardisierung vor.
Das heißt, alle Sprachstandards sind bereits fertig. Auch bei anderen Sprachen, wie Java oder C# sind die Bücher lange vor der endgültigen Verabschiedung erschienen.
Es kommt sogar noch dicker. Compilerhersteller, wie Microsoft haben bereits Produkte draussen, die C++0x teilweise unterstützen. Da staunste, wat!
-
Da staunste - > Gähn
War doch schon fast immer so mit den C++ Standards - nur ganz wenige Produkte haben fast exakt den beschriebenen Sprachumfang. Die meisten Compiler haben haben entweder einen grösseren oder eine kleineren Sprachumfang oder gar, je nach Funktion beides gleichzeitig.Einige Compiler Hersteller hatten auch schon mal "Glück" das sie es nicht geschafft haben den z.B. Funktionen eines aktuellen Standards hin zu kriegen.
Glück deswegen, weil auch Funktionen beim darauf folgenden Standard "wieder entfernt" wurden.Und irgend jemand muss ja die Software testen - warum da nicht schon mal ein paar Sachen beim Kunden testen
take it easy