Faustformeln: 1) Nutze Zeiger, wenn NULL (der Nullzeiger) eine reguläre Bedeutung hat. (Zum Beispiel: nicht initialisiertes Objekt). Dies trifft insbesondere für mit "new" und "delete" verwaltete Objekte auf dem Heap zu. Nutze Referenzen, wenn nicht mit NULL zu rechnen ist.
2) Sei C eine Klasse. Statt
void f(C obj) { ... }
schreibt man, falls obj innerhalb der Funktion f nicht modifiziert wird, meistens
void f(const C& obj) { ... }
da dies in der Regel effektiver ist. Dabei weist const darauf hin, dass das Objekt durch den Funktionsaufruf nicht geändert wird.
Funktionen von der Klasse C, die man innerhalb von f(const C&) nutzen möchte, müssen dabei als konstant gekennzeichnet sein. Möchte man zum Beispiel C::foo() innerhalb von f nutzen, so muss man C::foo() bei der Klassendeklaration und bei der Definition von C::foo() als konstant kennzeichnen:
class C { int foo() const; };
int C::foo() const { ... }
3) Eine gute Quelle zu C++ ist die C++-FAQ:
http://www.parashift.com/c++-faq-lite/
der C++ Mailingliste.
comp.lang.c++
Als Literatur wird dort unter anderem von Scott Meyers
"Effective C++"
empfohlen. Allerdings ist das kein Einsteiger-/Umsteigerbuch, sondern eher ein Buch für den Feinschliff.
Viel Spaß mit C++, Tobias Nähring