4.2 — void
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++ имеет третье (более продвинутое) использование, которое мы рассмотрим в разделе «10.20 – Указатели на void
». Поскольку мы еще не рассмотрели, что такое указатель, вам пока не нужно беспокоиться об этом случае.
Давайте двигаться дальше!