Spiagazione Void.

di il
8 risposte

Spiagazione Void.

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

  • Re: Spiagazione Void.

    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.
  • Re: Spiagazione Void.

    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...
  • Re: Spiagazione Void.

    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.
  • Re: Spiagazione Void.

    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)'.
  • Re: Spiagazione Void.

    Grazie a tutti delle spiegazione ! Credo di aver capito quali sono i compiti generali ! Grazie ancora.
  • Re: Spiagazione Void.

    Grazie della spiegazione
  • Re: Spiagazione Void.

    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)
  • Re: Spiagazione Void.

    Poi c'è la questione del puntatore a void...
Devi accedere o registrarti per scrivere nel forum
8 risposte