Вопрос про функции (с++) - Вопросы по С+
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Вопрос про функции (с++)

Регистрация
17 Сен 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
Я правильно понял что функция типа int возвращает значение, потому что она выполняет какие либо расчеты (которые могут быть заранее неизвестны) и поэтому она как бы возвращает результат своей работы? А функция типа void ничего не возвращает, то есть ничего не считает, а может просто например выводить какое то сообщение на экран (то есть мы заранее знаем какое сообщение она выведет). Итог: int - возвращает какое то число (результат вычислений), void - ничего не считает и возвращает какой нибудь текст который не меняется
 
Регистрация
6 Дек 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
А функция void может быть в классе, который содержит кучу полей. Вот она все "считает", а потом эти поля используются. the_class->eval(); int a = the_class->count; struct_type *pages = the_class->pages; и т. д.... Функция выполняет какие-то действия, т. е. всегда "считает" какой-бы она не была. Может она вообще возвращает код ошибки, который можно игнорировать.
 
Регистрация
5 Окт 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
void - ничего не считает и возвращает какой нибудь текст который не меняется/ Может считать очень много чего, но ничего не вернет. в том числе "какой-нибудь текст". Функции выполняют две вещи: 1. на основании переданных аргументов и окружения выполняют вычисления и возвращают результат. void - лишь частный случай такого результата. 2. производят некие побочные эффекты, например, вывод на экран. Если результат функции не зависит от аргументов и окружения (void - типичный пример такого результата), значит функция написана только для побочных эффектов. Если результат функции зависит только от аргументов, не зависит от окружения - получаем "функцию" в математическом смысле этого слова. если такая математическая функция еще и побочных эффектов не производит - получаем так называемую "чистую" функцию. чистые функции легко писать и отлаживать. их поведение предсказуемо.
 
Регистрация
15 Авг 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
Нет, не правильно. Функция может ничего не вычислять но возвращать int, равно как и функция, которая ничего не возвращает может выполнять любые вычисления. Одно другому не помеха.
 
Регистрация
3 Авг 2013
Сообщения
70
Репутация
0
Спасибо
0
Монет
0
Функция может не только возвращать или не возвращать какое-то значение, но и менять объявленные вне ее переменные или менять значения передаваемых ей параметров.
 
Сверху Снизу