Определение и вызов функции.

Автор: Пьянков Денис
ИТП-3-08

Синтаксис определения функции:

заголовок функции
{
  тело функции
}

Заголовок функции задает интерфейс функции. Тело функции определяет алгоритм функции.

Синтаксис заголовка функции:

[Тип возвращаемого значения] имя функции ([список формальных параметров ])

Формальные параметры в списке заголовка функции разделяются запятыми.

Синтаксис формального параметра:

Тип имя

Тип возвращаемого функцией значения может быть любым типом С++, кроме массива (но может быть указателем на массив) и функции (но может быть указателем на функцию).

Если функция не возвращает значения, то перед ее именем указывается тип void. Если функция возвращает целое значение, то перед ее именем можно не указывать тип int. Таким образом, два заголовка функции int f() и f() эквивалентны.

Тело функции может содержать операторы, объявления и директивы препроцессора. Если функция возвращает значение, то в ее теле должен быть как минимум один оператор return вида:

return выражение;

Пример определения функции, которая имеет два целочисленных параметра и возвращает целое значение, равное сумме значений параметров:

int sum (int x, int y)
{
   return x + y;
}

Функция sum возвращает целое значение, поэтому перед ее именем указан тип int, а в ее теле присутствует оператор return выражение, тип выражения также int.

Функция активизируется только в момент ее вызова. Функция вызывается по имени. Если у функции есть параметры, то при вызове после имени функции в кругых скобках указываются фактические параметры функции (аргументы функции). Аргументы указываются без типов и разделяются запятыми. Если у функции нет параметров, то она вызывается с пустыми круглыми скобками после имени функции.

Синтаксис вызова функции:

Имя функции ([список аргументов])

Пример вызова функции sum:

void main()
{
  int a, b;
  cout « "sum = " « sum(2, 5) « endl; //вызов функции
  cout « "a, b? "; 
  cin » a » b;
  cout « "sum = " « sum(a, a + b); //вызов функции
  getch();
}

Пример программы с функцией без параметров и без возвращаемого значения:

#include <iostream.h>
#include <conio.h>
// Функция выводит горизонтальную линию из 60 символов
void line( )  
{
  for (int i = 1; i <= 60; i++)
  {
    cout « '-';
  }
  cout « endl;
}

void main()
{
  line();  //при вызове функции скобки обязательны
  getch();
}

Если функция не возвращает значение, то наличие в теле функции оператора return не обязательно (функция завершает работу по последней фигурной скобке).

Предыдущая страница         Следующая страница
Сайт создан в системе uCoz