Gast
2007-10-06, 06:54:51
Diese FAQ soll eine Ansammlung an Tipps und Hinweisen werden, um sauberes, sicheres und daher auch möglichst fehlerfreies C++ coden zu ermöglichen.
Jeder der will, der kann hier weitere Tipps und Ratschläge, die die Qualität
des C++ Codes erhöhen, geben.
Hier sind meine Tipps:
==================================================
1. Beim erstellen von Zeigern am besten den Sternoperator * an den Zeigernamen anstatt an den Typ anheften.
Dies verhindert, daß bei Mehrfachnennungen ausversehen eine Variable anstatt ein Zeiger erstellt wird:
int* a, b; // a ist ein Zeiger, aber b ist eine int Variable!
int *a, *b; // a und b sind hier beides Zeiger, das anheften des
// Sternoperators an den Zeigernamen anstatt an den Zeigertyp
// vermeidet also unvorgesehene Fehler
==================================================
2. Zeiger sollten unmittelbar nach der Deklaration immer initialisiert werden. Dazu gibt es auch den Nulloperator:
int *zeiger = 0;
==================================================
3. Bevor man auf einen Zeiger zugreift, sollte man sicherstellen, daß er auch auf ein existierendes
Objekt zeigt:
if (zeiger)
*zeiger = 10;
Wenn man sich strikt an Regel Nr 2 hält und immer einen Nullzeiger für leere Zeiger einsetzt, dann kann man damit obige if Abfrage benutzen.
==================================================
4. Zur Dereferenzierung von Objektelementen ausschließlich den Operator -> einsetzen.
Also anstatt
(*student).matNr = 123456;
besser
student->matNr = 123456;
schreiben.
Dies ist eine bessere Schreibweise, da man so die Klammerung nicht außversehen vergißt.
Der Punktoperator hat nämlich Vorrang, vor dem Sternoperator
und bei vergessen der Klammerung kann das zu schweren Fehlern führen.
Wenn ihr selber noch weitere Tips und wichtige Hinweise habt, dann könnt ihr die jetzt hier in diesem Thread darunter schreiben.
Auch wäre es klasse, wenn ein Mod an diese FAQ noch ein Sticky Bit setzen könnte.
Jeder der will, der kann hier weitere Tipps und Ratschläge, die die Qualität
des C++ Codes erhöhen, geben.
Hier sind meine Tipps:
==================================================
1. Beim erstellen von Zeigern am besten den Sternoperator * an den Zeigernamen anstatt an den Typ anheften.
Dies verhindert, daß bei Mehrfachnennungen ausversehen eine Variable anstatt ein Zeiger erstellt wird:
int* a, b; // a ist ein Zeiger, aber b ist eine int Variable!
int *a, *b; // a und b sind hier beides Zeiger, das anheften des
// Sternoperators an den Zeigernamen anstatt an den Zeigertyp
// vermeidet also unvorgesehene Fehler
==================================================
2. Zeiger sollten unmittelbar nach der Deklaration immer initialisiert werden. Dazu gibt es auch den Nulloperator:
int *zeiger = 0;
==================================================
3. Bevor man auf einen Zeiger zugreift, sollte man sicherstellen, daß er auch auf ein existierendes
Objekt zeigt:
if (zeiger)
*zeiger = 10;
Wenn man sich strikt an Regel Nr 2 hält und immer einen Nullzeiger für leere Zeiger einsetzt, dann kann man damit obige if Abfrage benutzen.
==================================================
4. Zur Dereferenzierung von Objektelementen ausschließlich den Operator -> einsetzen.
Also anstatt
(*student).matNr = 123456;
besser
student->matNr = 123456;
schreiben.
Dies ist eine bessere Schreibweise, da man so die Klammerung nicht außversehen vergißt.
Der Punktoperator hat nämlich Vorrang, vor dem Sternoperator
und bei vergessen der Klammerung kann das zu schweren Fehlern führen.
Wenn ihr selber noch weitere Tips und wichtige Hinweise habt, dann könnt ihr die jetzt hier in diesem Thread darunter schreiben.
Auch wäre es klasse, wenn ein Mod an diese FAQ noch ein Sticky Bit setzen könnte.