Domanda

Qualcuno potrebbe spiegare con alcuni esempi quando è meglio chiamare le funzioni per riferimento e quando è meglio chiamare per indirizzo?

È stato utile?

Soluzione

Passa i tuoi argomenti per funzionare usando il riferimento ogni volta che è possibile. Passare argomenti per riferimento elimina la possibilità che siano NULL. Se vuoi che sia possibile passare il valore NULL a una funzione, usa il puntatore.

Altri suggerimenti

Questo è già stato discusso. Vedi Puntatore vs. riferimento .

Una bella convenzione è:

  • Passa gli oggetti tramite puntatore ogni volta che possono essere manipolati ( effetto collaterale o come output ) dalla funzione.
  • Passa tutti gli altri oggetti per riferimento const .

Questo rende molto chiaro al chiamante, con una documentazione minima e costi di prestazione zero, quali parametri sono costanti o meno.

Puoi applicarlo anche ai tipi primitivi, ma è discutibile se sia necessario utilizzare i riferimenti const per i parametri non output, poiché sono chiaramente pass-by-value e non possono agire come output della funzione in alcun modo (per tipi diretti - non puntatori / riferimenti - ovviamente).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top