Функцией называют логически обособленный блок кода С++, имеющий следующий вид:
< тип возвращаемого значения > name( < аргументы функции > )
{
// . . .
return < выражение > ;
}
Аргументами функции называются значения, которые можно передать ей при вызове. В возвращаемом значении указывается результат, который функция возвращает по окончании работы. Например, в вызове функции возведения в квадрат square ( 10 )
10 — это аргумент, а возвращаемое значение равно 100.И аргументы, и возвращаемое значение функции необязательны. Если какой-либо элемент отсутствует, вместо него используется ключевое слово void
. Значит, если вместо списка аргументов используется void, то при вызове функция не получает никаких аргументов ( как и в рассмотренной программе FunctionDemo ). Если же возвращаемый тип функции — void, то вызывающая программа не получает от функции никакого значения.В программе FunctionDemo
используется функция с именем sumSequence( ), которая не имеет аргументов и возвращает значение целочисленного типа.
«Тип аргументов функции по умолчанию —
void, поэтому функцию int fn( void ) можно записать как int fn( ).»[
Советы]Использование функции позволяет работать с каждой из двух частей программы FunctionDemo
в отдельности. При написании функции sumSequence( ) я концентрирую внимание на вычислении суммы чисел и не думаю об остальном коде, вызывающем эту функцию._________________
84 стр. Часть 2
. Становимся функциональными программистами
При написании функции main( )
я работаю с возвращаемой функцией sumSequence( ) — суммой последовательности ( на этом уровне абстракции я знаю только, что выполняет функция, а не как именно она это делает ).Простые функции...85
Функция sumSequence( )
возвращает целое значение. Функции могут возвращать значение любого стандартного типа, например double или char ( типы переменных рассматриваются в главе 2, "Премудрости объявления переменных" ).Если функция ничего не возвращает, то возвращаемый тип помечается как void
.
«Функции различаются по типу возвращаемого значения. Так, целочисленной функцией называют ту, которая возвращает целое значение. Функция, которая ничего не возвращает, известна как
void-функция. Далее приведён пример функции, выполняющей некоторые действия, но не возвращающей никаких значений.»[
Советы]
void echoSquare( )
{
cout << "Введите значение:" ;
cin >> value ;
cout << " \n" << value*value << "\n" ;
return ;
}
Сначала управление передаётся первой инструкции после открывающей скобки, затем поочередно выполняются все команды до инструкции return
( которая в данном случае не требует аргумента ). Эта инструкция передаёт управление вызывающей функции.
«Инструкция
return в void-функциях является необязательной. Если она отсутствует, то выполнение функции прекращается при достижении закрывающей фигурной скобки.»[
Советы] Функции с аргументами...85
Функции без аргументов используются редко, так как связь с такими функциями односторонняя, т.е. осуществляется только посредством возвращаемых значений. Аргументы функций позволяют установить двустороннюю связь — через передаваемые параметры и возвращаемые значения.
Функции с одним аргументом...85
Аргументами функции называют значения, которые передаются функции во время вызова. В следующем примере определяется и используется функция square( )
, которая возвращает квадрат переданного в качестве аргумента числа типа double:
/* SquareDemo — демонстрирует использование функции с аргументом */
#include
#include
#include
using namespace std ;
_________________
85 стр. Глава 6
. Создание функций
/* square — возвращает квадрат аргумента doubleVar — введённое значение return — квадрат doubleVar */
double square( double doubleVar )
{
return doubleVar * doubleVar ;
}