„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wann sollte in C++ eine Referenz oder ein Zeiger übergeben werden: Ein Leitprinzip?

Wann sollte in C++ eine Referenz oder ein Zeiger übergeben werden: Ein Leitprinzip?

Veröffentlicht am 15.11.2024
Durchsuche:204

When to Pass by Reference or Pointer in C  : A Guiding Principle?

Übergabe per Referenz oder Zeiger in C: Ein Leitprinzip

In C verstehen, wann die Übergabe per Referenz und wann Zeiger verwendet werden sollten ist entscheidend. Diese Vorgehensweise kann zu effizientem und fehlerfreiem Code führen.

Allgemeine Situationen

  • Übergabe eines std::string an eine Funktion:

    • foo(std::string*) oder foo(std::string&)?
  • Übergabe eines tr1::shared_ptr an eine Funktion:

    • foo(tr1::shared_ptr* ptr) oder foo(tr1::shared_ptr& ptr)?

Zeiger vs. Referenzen

Die Übergabe als Referenz bietet Konsistenz, da jedes Objekt als Referenz behandelt werden kann. Die Übergabe eines Zeigers bietet jedoch die Flexibilität, Nullptrs und Literale zu verarbeiten.

Snippet-Analyse

Das angegebene Snippet:

map> > adjacencyMap;
vector* myFriends = new vector();
myFriends->push_back(string("a"));
myFriends->push_back(string("v"));
myFriends->push_back(string("g"));
adjacencyMap["s"] = shared_ptr >(myFriends);

hebt die Notwendigkeit hervor, die Eigenschaften von Referenzen und Zeigern zu berücksichtigen:

  • Die verwendeten Kartenschlüssel Referenzen, die Speichereffizienz garantieren.
  • Der Vektorzeiger ermöglicht eine dynamische Zuordnung und erleichtert die Vektoraddition.

Faustregel

Letztendlich gilt: Die geeignete Wahl hängt von den spezifischen Anforderungen ab. Beachten Sie als Leitprinzip Folgendes:

  • Verwenden Sie Referenzen: Für eine effiziente Speichernutzung und wenn Sie garantierten Zugriff auf das referenzierte Objekt haben.
  • Verwenden Zeiger: Beim Umgang mit Nullptrs, beim Arbeiten mit dynamischem Speicher oder wenn Sie Referenzen selbst ändern müssen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3