C++ Review Zusammenfassung

  • Ersteller Ersteller CBLukas
  • Erstellt am Erstellt am
Hi,

also erst mal nicht wenig Mühe, die du da reingesteckt hast. Ist stellenweise dann schon Kritik auf hohem Niveau.

Die Formulierung "leaves the containing function" finde allerdings etwas ungeschickt... "containing" als Adjektiv beschreibt function. Was für eine function? Die beinhaltende... also die Funktion, die etwas beinhaltet. Was beinhaltet die? Also "current" wäre logischer... auch beim Loop is "containing" etwas ungeschickt... auch hier fände ich current treffender.

Unklar finde ich, warum break und continue gerade beim While-Loop vorgestellt/demonstriert werden...

Bei den Pointer-Deklarationen wäre noch sinnvoll zu warnen vor dem hier:
int* a, b, c; // only a is a pointer, b and c are int

Eventuell anmerken, dass statische Klassenvariablen außerhalb der Klasse initialisiert werden müssen... (selbst wenn const, private, ...)

Evtl auch bei cout noch zeigen, dass man Dinge wie Präzision auch einfacher einstellen kann
cout << "Hallo meine Zahl ist " << setprecision(4) << f << " nicht sehr präzise, oder?" << endl;
keine Ahnung ob das korrekt ist, nur aus dem Stegreif... evtl noch Dinge wie setw(int) und setfill(char), Ausrichtung usw ansprechen...

Manche Compiler binden übrigens die stdlib nicht standardmäßig ein, weshalb sie den NULL-Zeiger nicht immer kennen... und bitte NULL und nicht null...
 
1668mib schrieb:
Die Formulierung "leaves the containing function" finde allerdings etwas ungeschickt... "containing" als Adjektiv beschreibt function. Was für eine function? Die beinhaltende... also die Funktion, die etwas beinhaltet. Was beinhaltet die? Also "current" wäre logischer... auch beim Loop is "containing" etwas ungeschickt... auch hier fände ich current treffender.
Jup, verbessert.
1668mib schrieb:
Unklar finde ich, warum break und continue gerade beim While-Loop vorgestellt/demonstriert werden...
Ohne Grund, irgendwo sollte es aber sein ;)
1668mib schrieb:
Bei den Pointer-Deklarationen wäre noch sinnvoll zu warnen vor dem hier:
int* a, b, c; // only a is a pointer, b and c are int
Verbessert
1668mib schrieb:
Eventuell anmerken, dass statische Klassenvariablen außerhalb der Klasse initialisiert werden müssen... (selbst wenn const, private, ...)
Eingefügt
1668mib schrieb:
Evtl auch bei cout noch zeigen, dass man Dinge wie Präzision auch einfacher einstellen kann
cout << "Hallo meine Zahl ist " << setprecision(4) << f << " nicht sehr präzise, oder?" << endl;
keine Ahnung ob das korrekt ist, nur aus dem Stegreif... evtl noch Dinge wie setw(int) und setfill(char), Ausrichtung usw ansprechen...
Oke...wusste ich nicht. Ich hab's jetzt nicht reingenommen, weil dann gerade nicht mehr alles auf 4 Seiten passt... wenn ich mal umformatieren muss, werd ich's hinzufügen.
1668mib schrieb:
(...)und bitte NULL und nicht null...
Unter "Possible Mistakes/Checklist": "In C++ it’s NULL and not null" ;)
Oder hast du's irgendwo klein gefunden?

Vielen Dank für deinen Aufwand
Im Anhang gibt's wieder eine neue Version
Lukas

PS: Die Grössenlimite für PDFs auf CB ist echt mühsam... als ZIP kann man's aber dennoch hochladen -.- Wäre cool, wenn man die Limite für PDFs erhöhen könnte (150 KB ist extrem wenig)
 

Anhänge

Der Satz mit dem NULL bezog sich mehr auf die Diskussion hier im Thread :-)

Grüße mib
 
Hallo zusammen,

ich verstehe momentan nicht das Beispiel in Zusammenhang mit den Code-Kommentaren. Es ist aus dem Abschnitt "CONVERT FLOAT TO STRING":

Code:
#include <sstream>    /* ... */
std::ostringstream buf; float f = 1.234567;  
buf.precision(4); buf << f; //1.235 
std::string s = buf.str();     //f = 10.345 -> 10.35
const char* cs = s.c_str();

Am Anfang wird der Float auf 1.234567 gesetzt. Aber am Ende soll 10.35 (Inhalt der Variable cs) rauskommen? Ist das tatsächlich so oder stimmt der Kommentar dazu nicht?

Grüße
Rossibaer
 
Rossibaer schrieb:
Code:
#include <sstream>    /* ... */
std::ostringstream buf; float f = 1.234567;  
buf.precision(4); buf << f; //1.235 
std::string s = buf.str();     //f = 10.345 -> 10.35
const char* cs = s.c_str();
Am Anfang wird der Float auf 1.234567 gesetzt. Aber am Ende soll 10.35 (Inhalt der Variable cs) rauskommen? Ist das tatsächlich so oder stimmt der Kommentar dazu nicht?
r

Ist eine unglückliche Formulierung meinerseits. Es hätte std::ostringstream::precision() anhand von zwei Beispielen erklären sollen.
Ist f zu Beginn 1.234567, so kommt "1.235" raus; ist f zu Beginn 10.345, so kommt "10.35" raus.
Ich werde es dann irgendwann noch abändern
 
Hätte es auch sehr gerne
 
Hallo zusammen

Ich hoffe den Admin nicht allzu sehr zu verärgern durch das Ausgraben dieses alten Threads.

Ich habe euch versprochen nach der Prüfung die aktuellste Version der Zusammenfassung zur Verfügung zu stellen. Hier ist sie:
C++ Zusammenfassung
Die meisten, die sich für diese Zusammenfassung interessieren, finden evtl. auch meine anderen Zusammenfassungen interessant:
Meine Uni-Website oder als Verzeichnis

Vielen Dank nochmals für eure Mithilfe! (es hat für eine 1 gereicht :evillol:)

Lukas
 
Zuletzt bearbeitet:
Wow, der Hammer, wie das Ganze gewachsen ist. Habe die Zusammenfassung gleich geladen. Vielen Dank dafür, dass du auch nach so langer Zeit noch daran gedacht hast und es hier postest.

Viel Spaß weiterhin
Rossibaer
 
Zurück
Oben