4.2 — Void

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 void

Void 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!

guest
Twój adres e-mail nie zostanie wyświetlony
Znalazłeś błąd? Zostaw komentarz powyżej!
Komentarze związane z poprawkami zostaną usunięte po przetworzeniu, aby pomóc zmniejszyć bałagan. Dziękujemy za pomoc w ulepszaniu witryny dla wszystkich!
Awatary z https://gravatar.com/ są połączone z podanym adresem e-mail.
Powiadamiaj mnie o odpowiedziach:  
111 Komentarze
Najnowsze
Najstarsze Najczęściej głosowane
Wbudowane opinie
Wyświetl wszystkie komentarze