Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Tipo di Dato Void | Altri Tipi di Dati e Concetti
Tipi di Dati in C++

bookTipo di Dato Void

Scorri per mostrare il menu

È sempre necessario specificare il tipo perché si tratta di un linguaggio a tipizzazione statica. Il compilatore deve conoscere l'esatto tipo di ogni variabile per allocare la corretta quantità di memoria e garantire la sicurezza dei tipi. Deve inoltre conoscere i tipi dei valori di ritorno e dei parametri delle funzioni.

Note
Nota

Un linguaggio a tipizzazione statica è un linguaggio in cui il tipo di dato di una variabile viene dichiarato esplicitamente e viene applicato dal compilatore.

main.cpp

main.cpp

copy
12345678910
#include <iostream> // Let's consider a simple example. // Imagine you need to create a function that logs something in console. // What type should it return? ___ log(std::string message) { std::cout << message; return ___; }

In questo caso, non è necessario un tipo di ritorno specifico: potrebbe essere int, double, float o bool. Per questo scenario, il tipo esatto non è rilevante. In effetti, cosa succede se non abbiamo bisogno di restituire nulla?

Void come tipo di ritorno di una funzione

Spesso esistono funzioni che sembrano non dover restituire alcun valore, come ad esempio:

main.cpp

main.cpp

copy
12345678
// Outputting information in console ___ log(std::string message) { std::cout << message; } // Updating values of variables ___ update(int& variable, int new_value) { variable = new_value; } // Calling another function ___ closeFile(std::fstream& file) { file.close(); }

In questo caso si può utilizzare il tipo di dato void. Il tipo di dato void in programmazione indica l'assenza di qualsiasi valore o tipo. Può essere utilizzato in diversi modi, ma per le funzioni viene solitamente impiegato per indicare che una funzione non restituisce alcun valore.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> void log(std::string message) { std::cout << message; return; } int main() { log("This is a void function!"); }

Nota

È stata utilizzata la parola chiave return senza effettivamente passare alcun valore. La parola chiave return può anche essere omessa nelle funzioni di tipo void. Prova a cancellarla nell'esempio.

Void come Puntatore

I puntatori void (void*) sono puntatori che non hanno un tipo di dato specifico associato. Possono puntare a qualsiasi tipo di oggetto, ma è necessario eseguire un cast al tipo appropriato prima di utilizzarli. Sono molto utili ma talvolta difficili da comprendere.

main.cpp

main.cpp

copy
1234567891011121314
#include <iostream> int main() { int num = 10; // Here we are creating a void pointer // Now it can point to any variable of any data type // You can try changing the type of `num` from `int` to `float` void* ptr = &num; // To use this pointer, we need to cast it to the appropriate type // VVV int* intPtr = static_cast<int*>(ptr); std::cout << *intPtr << std::endl; // Output: 10 }

In questo esempio, ptr è un puntatore void che punta a un intero (num). Successivamente, eseguiamo il cast di ptr a un puntatore int* per accedere e stampare il valore di num.

question mark

Cosa significa utilizzare void come tipo di ritorno di una funzione in C++?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 4. Capitolo 3
some-alt