Void to najłatwiejszy do wyjaśnienia typ danych. Zasadniczo void oznacza „brak typu”!
Void jest naszym pierwszym przykładem niekompletnego typu. Typ niekompletny to typ, który został zadeklarowany, ale jeszcze nie zdefiniowany. Kompilator wie o istnieniu takich typów, ale nie ma wystarczających informacji, aby określić, ile pamięci przydzielić dla obiektów tego typu. void jest celowo niekompletny, ponieważ reprezentuje brak typu i dlatego nie można go zdefiniować.
Nie można utworzyć instancji niekompletnych typów:
void value; // nie będzie działać, nie można zdefiniować zmiennych z niekompletnym typem voidVoid jest zwykle używany w kilku różnych kontekstach.
Funkcje, które nie zwracają wartość
Najczęściej void jest używany do wskazania, że funkcja nie zwraca wartości:
void writeValue(int x) // void tutaj oznacza brak wartości zwracanej
{
std::cout << "The value of x is: " << x << '\n';
// brak instrukcji return, ponieważ ta funkcja nie zwraca wartości
}Jeśli użyjesz instrukcji return, aby spróbować zwrócić wartość w takiej funkcji, spowoduje to błąd kompilacji:
void noReturn(int x) // void tutaj oznacza brak wartości zwracanej
{
std::cout << "The value of x is: " << x << '\n';
return 5; // error
}W Visual Studio 2017 spowodowało to błąd:
error C2562: 'noReturn': 'void' function returning a value
Przestarzałe: Funkcje, które nie przyjmują parametry
W C, void służy do wskazania, że funkcja nie przyjmuje żadnych parametrów:
int getValue(void) // void tutaj oznacza nie parametry
{
int x{};
std::cin >> x;
return x;
}Chociaż zostanie to skompilowane w C++ (ze względu na kompatybilność wsteczną), to użycie słowa kluczowego void jest uważane za przestarzałe w C++. Poniższy kod jest równoważny i preferowany w C++:
int getValue() // puste parametry funkcji są niejawną pustką
{
int x{};
std::cin >> x;
return x;
}Najlepsza praktyka
Użyj pustej listy parametrów zamiast void , aby wskazać, że funkcja nie ma parametrów.
Inne zastosowania void
Słowo kluczowe void ma trzecie (bardziej zaawansowane) zastosowanie w C++, które omówimy w sekcji 19.5 -- Wskaźniki pustki. Ponieważ nie omówiliśmy jeszcze, czym jest wskaźnik, na razie nie musisz się tym przejmować.
Idźmy dalej!

