Spiagazione Void.

di Anonimizzato10214 il
8 risposte
Come da titolo,potreste spiegarmi cosa fa la variabile void? Non ho capito a cosa serve, so che non resituisce alcun valore ma allora a cosa serve, perchè dovrei usarla?

Grazie delle eventuali risposte !

8 Risposte

  • Void non è una variabile, ma una keyword.
    Per default il C /C++ si aspetta che una funzione restituisca sempre qualcosa. Ponendo void davanti la dichiarazione della funzione, si dice al compilatore: questa funzione non restituisce nulla.
    Altro uso non ne ha.
  • Sisi quello che non restituisce nulla lo so..ma quando la dovrei usare? Quando mai vorrei che una funzione non restituisca nulla? Non ne vedo l'utilità...
    Un esempio di una funzione che non restituisce nulla? Bho non saprei proprio...
  • Una funzione chiave che prende un parametro e non restituisce nulla.
    void std::free(void* p);

    L'utilità serve dal contesto: se devi restituire un valore solo per scartarlo sempre, tanto vale mettere la funzione void e non restituire nulla. E' una scelta che ti lascia il linguaggio.
  • Di motivi per non restituire nulla ce ne sono tanti;

    Ad esempio una funzione 'void DrawRectangle(...)' svolge un compito ben preciso (disegnare un rettangolo, ma può essere qualsiasi altra cosa) e non deve restituire nulla.

    Moltissimi metodi di classe sono void in quanto operano sui campi dell' oggetto e non devono restituire nessun valore, ad esempio un metodo 'void MyClass::Clear()' fà delle opearzioni di pulizia (ad esempio svuota un array) e non ha valore di ritorno.

    A volte una funzione deve alterare un oggetto passato per riferimento, ad esempio void FaiQualcosa(MyClass& c), altererà l' oggetto ricevuto per riferimento e non ha valore di ritorno.

    Altre volte un solo valore restituito è troppo poco, te ne servono più d' uno, in questi casi usi il passaggio per riferimento e spesso per motivi di chiarezza rinunci a usare il valore di ritorno ad esempio, 'void CalcolaPerimetroEArea(double raggio, double& perometro, double& area)'.
  • Grazie a tutti delle spiegazione ! Credo di aver capito quali sono i compiti generali ! Grazie ancora.
  • Grazie della spiegazione
  • Versione breve storica: non usare due definizioni diverse, come precedure e function in Pascal (linguaggio coevo) per senza e con risultato.
    più semplice, più compatto.
    MA togliere warning da compilatore per mancato ritorno valore (debug già molto difficile al tempo)
  • Poi c'è la questione del puntatore a void...
Devi accedere o registrarti per scrivere nel forum
8 risposte