Как вы уже знаете, C++ позволяет вам с помощью параметров передавать информацию в функции. Из урока 13 вы выяснили, что C++ также обеспечивает перегрузку функций, предусматривая определения, содержащие разное количество параметров или даже параметры разных типов. Кроме этого, в C++ при вызове функций можно опускать параметры. В таких случаях для опущенных параметров будут использоваться значения по умолчанию. Этот урок описывает как устанавливать значения по умолчанию для параметров функций. К концу данного урока вы освоите следующие основные концепции:

• C++ позволяет программам указывать для параметров значения по умолчанию.

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

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

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

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

ОПРЕДЕЛЕНИЕ ЗНАЧЕНИЙ ПО УМОЛЧАНИЮ

Обеспечить значения по умолчанию для параметров функции очень легко. Вы просто присваиваете значение параметру с помощью оператора присваивания С++ прямо при объявлении функции, как показано ниже:

void some_function(int size=12, float cost=19.95) //---->Значения по умолчанию

{
   // Операторы функции
}

Следующая программа DEFAULTS. CPP присваивает значения по умолчанию параметрам a, b и c внутри функцииshow_parameters. Затем программа четыре раза вызывает эту функцию, сначала не указывая параметров вообще, затем указывая значение только для а, потом значения для а и b и, наконец, указывая значения для всех трех параметров:

#include

void show__parameters (int a=1, int b=2, int c=3)

{
   cout << "a" << a << " b " << b << " с" << с<< endl;
}

void main(void)

{
   show_parameters();
   show_parameters(1001);
   show_parameters(1001, 2002);
   show_parameters(1001, 2002, 3003);
}

Когда вы откомпилируете и запустите эту программу, на вашем экране появится следующий вывод:

С:> DEFAULTS

а 1 b 2 с 3

а 1001 b 2 с 3

а 1001 b 2002 с 3

а 1001 b 2002 с 3003

Как видите, если необходимо, функция использует значения параметров по умолчанию.

Правила для пропуска значений параметров

Если программа опускает определенный параметр для функции, обеспечивающей значения по умолчанию, то следует опустить и все последующие параметры. Другими словами, вы не можете опускать средний параметр. В случае предыдущей программы, если требовалось опустить значение параметра b вshow_parameters, программа также должна была опустить значение параметра с. Вы не можете указать значение для а и с, опуская значение Ь.

Задание значений по умолчанию

Когда вы определяете функцию, C++ позволяет вам указать значения по умолчанию для одного или нескольких параметров. Если программав дальнейших вызовах этой функции опускает один или несколько параметров, то функция будет использовать для них значения по умолчанию. Чтобы присвоить параметру значение по умолчанию, просто используйте оператор присваивания внутри определения функции.
Например, следующая функцияpayroll указывает значения по умолчанию для параметровhours иrate:

float payroll(int employ_id, float hours = 40, float rate = 5.50)

{

   // операторы
}

Когда программа опускает один параметр, она должна опускать все последующие параметры.

ЧТО ВАМ НЕОБХОДИМО ЗНАТЬ

Из данного урока вы узнали, что C++ позволяет вам указывать значения по умолчанию для параметров функции. Если программа опускает один или несколько параметров, функция использует значения по умолчанию. В следующих уроках, когда ваши программы начнут использовать объектно-ориентированное программирование на C++, вы будете применять параметры по умолчанию для инициализации различных переменных класса. Как вы уже знаете, переменная позволяет вам хранить значение определенного типа (int, float и. т. д). В уроке 16 вы освоите, как хранить несколько значений одного и того же типа внутри массива. Например, ваша программа может хранить тестовые очки для 100 студентов или стоимость 50 акций. С помощью массивов хранить и использовать такие значения очень легко. До изучения урока 16 убедитесь, что вы освоили следующие основные концепции:

    1. Чтобы присвоить значения по умолчанию параметрам функции, используйте оператор присваивания C++ непосредственно в определении функции.
    2. Если программа опускает значения параметров при вызове функции, функция использует значения по умолчанию.
    3. Если программа опускает значение одного параметра, она должна опустить значения для всех последующих параметров; программа не может опускать средний параметр.
    4. Указывая параметры по умолчанию, вы тем самым облегчаете использование ваших функций, в том числе и для других программ.