4.2 — Void

Void to najłatwiejszy do wyjaśnienia typ danych. Zasadniczo próżnia 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; // won't work, variables can't be defined with incomplete type void

Void jest zwykle używany w kilku różnych kontekstach.

Funkcje, które nie zwracają wartość

Najczęściej próżnia jest używany do wskazania, że funkcja nie zwraca wartości:

void writeValue(int x) // void here means no return value
{
    std::cout << "The value of x is: " << x << '\n';
    // no return statement, because this function doesn't return a value
}

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 here means no return value
{
    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 here means no parameters
{
    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 próżnia jest uważane za przestarzałe w C++. Poniższy kod jest równoważny i preferowany w C++:

int getValue() // empty function parameters is an implicit void
{
    int x{};
    std::cin >> x;

    return x;
}

Najlepsza praktyka

Użyj pustej listy parametrów zamiast próżnia , 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