При описании функции можно инициализировать некоторые параметры функции. Формальные параметры инициализируются значениями или глобальными константами, которые определены с помощью директивы define.
При вызове такой функции в качестве фактических параметров достаточно указать только те, которые соответствуют не инициализированным формальным. При этом для создания динамического варианта функции в качестве значений формальных инициализированных параметров будут использоваться те значения, которые были указаны при описании. Если для инициализированного параметра при вызове функции указан фактический параметр, то алгоритм использует значение этого фактического параметра.
Правила:
1. Формальные инициализированные параметры должны располагаться подряд после неинициализированных, т.е. секция инициализированных параметров должна быть последней в списке формальных параметров.
2. При вызове функции фактические параметры, соответствующие инициализированным формальным, должны располагаться подряд с начала секции инициализации.
<тип значения><идент.>(<тип пар.> [ =<знач.> ]{, <тип пар.> [ =<знач.> ]})
Пример:
Нахождение длины отрезка
float par (float, float = 1, float = 1);
float par (float &x, float &y, float &z)
{
return x*y*z;
}
void main ()
{
float a, b, c;
int n;
cout<<”1. Dlina otrezka ”<<endl;
cout<<”2. Ploshad’ pryamougol’nika ”<<endl;
cout<<”3. Obyom pryamougol’nogo parallelipipeda ”<<endl;
cout<<”Nomer punkta? ”;
cin>>n;
switch (n)
{
case 1:
cout<<”Dlina? ”;
cin>>a;
cout<<”Dlina otrezka = “<<par(a);
break;
case 2:
cout<<”Dlina I shirina? ”;
cin>>a>>b;
cout<<”Ploshad’ = ”<<par(a, b);
break;
case 3:
cout<<”Dlina, shirina i visota? ”;
cin>>a>>b>>c;
cout<<”Obyom = ”<<par(a,b,c);
break
default
cout<<”Nepravil’niy nomer punkta”;
}
}






