Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    passaggio per valore o altro?

    Ciao, mi chiedevo quando fosse utile passare a una funzione dei paramatri per reference o per indirizzo invece di passare sempre il tutto per valore?

  2. #2
    Ad esempio quando la funzione deve modificare il valore puntato dal parametro, quando il parametro è una struttura molto grossa, per cui sarebbe inefficiente passarla sempre per riferimento, quando il parametro è una classe di cui non si vuole che venga creata una copia (anche se in quest'ultimo caso nella maggior parte dei casi basterebbe scrivere un costruttore di copie per evitare il problema).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Correggo:
    Ad esempio quando la funzione deve modificare il valore puntato dal parametro, quando il parametro è una struttura molto grossa, per cui sarebbe inefficiente passarla sempre per valore, quando il parametro è una classe di cui non si vuole che venga creata una copia (anche se in quest'ultimo caso nella maggior parte dei casi basterebbe scrivere un costruttore di copie per evitare il problema).
    Experience is what you get when you don’t get what you want

  4. #4
    Grazie, mi era sfuggito.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Integro:
    Originariamente inviato da Xaratroom
    ...quando il parametro è una classe di cui non si vuole che venga creata una copia (anche se in quest'ultimo caso nella maggior parte dei casi basterebbe scrivere un costruttore di copie per evitare il problema).
    O quando la classe ha il costruttore di copia privato (che non permette il passaggio per valore) oppure quando la classe stessa è una classe polimorfa. (la classe ostream è un esempio)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.