Что возвращает void c
Перейти к содержимому

Что возвращает void c

Урок №29. Тип данных void

Тип void — это самый простой тип данных, который означает «отсутствие любого типа данных». Следовательно, переменные не могут быть типа void:

Тип void, как правило, используется в трех случаях:

Использование №1: Указать, что функция не возвращает значение:

Использование №2: Указать, что функция не имеет никаких параметров (перешло из языка Cи):

Указание типа void как «никаких параметров» является пережитком, сохранившимся еще со времен языка Cи. Следующий код равнозначен и более предпочтителен для использования в языке C++:

Правило: Используйте пустой список параметров вместо void для указания отсутствия параметров в функции.

Использование №3: Ключевое слово void имеет третий (более продвинутый) способ использования в языке C++, который мы будем рассматривать на уроке №92.

Поделиться в социальных сетях:

Урок №28. Инициализация, присваивание и объявление переменных

Комментариев: 5

Ключевое слово void имеет третий более продвинутый.
Этот void какой то эпический, уже 2й раз читаю что о нем мы узнаем дальше))) Мне кажется это пасхалка какая-то))

Если все-таки разделять понятия "процедура" и "функция" (понимаю, что в C понятие "процедура" отсутствует), то void станет более понятным.
Процедура — это просто последовательность действий.
Функция — это как бы "ответ на вопрос".
"Отсортируй переданный в параметрах массив" — процедура (void).
"Что получится, если перемножить переданные параметры?" — функция.

Не могу понять, что такое VOID в С++?

    в функциях: в качестве возвращаемого значения:

  • Facebook
  • Вконтакте
  • Twitter

Nipheris

sivabur

  • Facebook
  • Вконтакте
  • Twitter
  • Facebook
  • Вконтакте
  • Twitter

vs_convoy

vs_convoy

vs_convoy

makrushin-evgenii

  • Facebook
  • Вконтакте
  • Twitter

heksen

  • Facebook
  • Вконтакте
  • Twitter

vs_convoy

heksen

tsarevfs

  • Facebook
  • Вконтакте
  • Twitter

Влад Конвой Все просто. Из курса Computer science. Рекомендую почитать SICP.

В математике На вопрос «Как это выглядит?» отвечает «функция». А на вопрос «Как же это получить?» отвечает «процедура».
В С-подобных языках именованные вычисления оформляются в виде функций. Но функции в С-подобных языках отвечают на оба вопроса и нет ни одного способа разграничить. Функция в С-подобных всегда должна что-то вернуть! Какой-то результат! Какой-то новый объект. Но что-то новая вернуть по-любому должна!

Теперь, а как же быть если хочется хоть как-то разграничить на функции и процедуры? Вот для этого есть «костыль» в виде ‘void’! Другими словами это способ сказать читающему код: «мы ничего не возвращаем, мы только создаем». Это и есть «как это получить?» в таких функциях только производство чего-то нового. Нарисовать окно, зашифровать диск, послать другу . А в в функциях возвращающих результат можно уже написать в терминах математики, то есть как что выглядит, но ни как что получается 😉

что происходит с возвращаемой функции в void функции

user avatar

Ничего. Если компилятор без оптимизатора — ну, какой-то код суммирования создаст, результат — в помойку, ну, а если компилятор поумнее — то и этого не будет.

В общем случае: возвращаемое значение просто не используется, вот и все.

user avatar

Там ничего не происходит. И ничего это не даст. Функции, которые возвращают void, то есть не возвращают просто выполняют свой функционал, описанный в виде операторов: присваивают значения переменным, выводят текст, считывают ввод и т.д.

Во-вторых, если вы просто так вызовите функцию, которая что-то возвращает, то она выполнится, даже куда-нибудь что-нибудь выведет, если в ней есть фукнция cout, НО свое значение, которая она вернула никуда она не запишет. Поэтмому функции, которые возвращают значение обычно пишут так:

ИЛи другой тип данных.

При вызове фукнции, которая возвращает значение, значение, которое она возращает ПОДСТАВЛЯЕТСЯ ВМЕСТО ВЫЗОВА ФУНКЦИИ. Например:

Выведет HELLO, так как 3 больше, чем 0 (эта фукнция проверяет, больше ли число, чем 0), значит значение true подставится вместо вызова функции и мы получим это:

В вашем случае это значение, которое подставится вместо sum(a, b) ничего не будет значить, так как с ним вы ничего не делаете: не используете в цикле, не проверяете в условии, не присваиваете в переменную и т.д.

А вот методы void для того и нужны, чтобы вызывать их просто так: они выполнят ссвой функционал и движение по коду продолжится дальше.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *