?
Gamer4 schrieb:
Jeman hat mich gefragt, was so speziell an Zeigern als Argumente sein soll und da hab ich dieses Beispiel gebracht.
Man sollte immer Zeiger an Funktionen übergeben, wenn man größere Objekte in der Funktion manipulieren will. Hier mal ein Beispiel wie ich es gelernt und mir angewöhnt habe.
class big
{
// viele viele Variablen
};
void foo(int i; big* p, const big& r)
{
// mache irgendwas
}
int i übergebe ich ganz normal. Ein Zeiger auf elemtare Datentypen macht nur Sinn, wenn die Funktion mehrere Variablen ändern soll.
big* p ist ein Zeiger auf eine Instanz der Klasse big. Hierbei muss halt nicht die gesammte Instanz kopiert werden, was wieder Rechenleistung spart.
const big& r ist eine konstante Referenz auf eine Instant der Klasse big. Der Vorteil bei Referenzen ist die Schreibweise. Man kann eine, an eine Funktion übergebene, Referenz genauso wie eine normal übergeben Variable nutzen. Ich nutze immer eine Konstante Referenz, wenn meine Funktion das Objekt nicht manipulieren soll, also nur für weitere Operationen auf andere Objekte oder für die Ausgabe benötigt.
Ich hoffe das hat dir ein wenig geholfen.
Gruß Spartaner