4.2 — void

Добавлено 26 апреля 2021 в 20:35

void – самый простой для объяснения тип данных. По сути, void означает «нет типа»!

Следовательно, переменные не могут быть определены с типом void:

void value; // не будет работать, переменные не могут быть определены с типом void

void обычно используется в нескольких разных контекстах.

Функции, не возвращающие значение

Чаще всего void используется, чтобы указать, что функция не возвращает значение:

void writeValue(int x) // void здесь означает, что нет возвращаемого значения
{
    std::cout << "The value of x is: " << x << '\n';
    // нет инструкции return, потому что эта функция не возвращает значение
}

Если вы используете инструкцию return, чтобы попытаться вернуть значение в такой функции, выдастся ошибка компиляции:

void noReturn(int x) // void здесь означает, что нет возвращаемого значения
{
    return 5; // ошибка
}

В Visual Studio 2017 это привело к ошибке:

error C2562: 'noReturn': 'void' function returning a value

Устарело: функции, не принимающие параметров.

В C void используется как способ указать, что функция не принимает никаких параметров:

int getValue(void) // void здесь означает отсутствие параметров
{
    int x;
    std::cin >> x;
    return x;
}

Хотя в C++ это будет компилироваться (из-за обратной совместимости), такое использование ключевого слова void в C++ считается устаревшим. Следующий код эквивалентен и в C++ более предпочтителен:

int getValue() // пустые параметры функции - это неявный void
{
    int x;
    std::cin >> x;
    return x;
}

Лучшая практика


Чтобы указать, что функция не имеет параметров, используйте пустой список параметров вместо void.

Прочее использование void

Ключевое слово void в C++ имеет третье (более продвинутое) использование, которое мы рассмотрим в разделе «9.20 – Указатели на void». Поскольку мы еще не рассмотрели, что такое указатель, вам пока не нужно беспокоиться об этом случае.

Давайте двигаться дальше!

Теги

C++ / CppvoidДля начинающихОбучениеПрограммированиеТипы данных

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.