Функции с параметрами по умолчанию.

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

В С++ для того, чтобы упростить вызов функции с наиболее часто используемыми входными значениями, в заголовке функции используются параметры по умолчанию. Параметр по умолчанию – это значение, которое используется в качестве аргумента функции, если при вызове функции аргумент не указан. Для задания в функции параметра по умолчанию, надо в заголовке функции объявить формальный параметр с начальным значением. Функция может иметь несколько параметров умолчания, но они должны находиться в конце списка формальных параметров.

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

#include <iostream.h>
#include <conio.h>

//Функция поиска первого вхождения значения х в массив из
//n целых чисел начиная с позиции p
int pos (int a[], int n, int x, int p = 0);

void main()
{
  int a[100], n, x, p;
  int number; //номер первого числа массива со значением х (или -1)
  cout « "n? ";
  cin » n;
  cout « "a: ";
  for (int i = 0; i < n; ++i)
  {
    cin » a[i];
  }
  cout « "x? ";
  cin » x;
  number = pos(b, n, x); //по умолчанию поиск начинается с 0-позиции
  if (number == -1)
  {
    cout « "No" « endl;
  }
  else
  {
    cout « "number_0 = " « number << endl; 
  }
  number = pos(b, n, x, 3); // поиск начинается с 3-позиции
  if (number == -1)
  {
    cout « "No" « endl;
  }
  else
  {
    cout « "number_3 = " « number; 
  }
  getch();
}

int pos(int a[], int n, int x, int p)
{
  for(int i = p; i < n; i++)
  {
    if(a[i] == x)
    {
      return i; //возврат номера элемента
    }
  }
  return -1; //возврат признака отсутствия вхождения элемента 
}

Тесты:

  1. а: 8 9 5 2 1 9 10, n = 7, x = 9, p = 0     результат: number = 1
  2. а: 8 9 5 2 1 9 10, n = 7, x = 9, p = 3     результат: number = 5
  3. а: 8 9 5 2 1 9 10, n = 7, x = 4, p = 0     результат: number = -1

В программе функция pos вызывалась два раза: первый раз с 3 аргументами (использовалось значение умолчания), второй – с 4 аргументами.

Ограничения на использование параметров по умолчанию:

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

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