Всего на сайте:
248 тыс. 773 статей

Главная | Механика

Float Name(int first). {return first*first;}, то буде видане повідомлення про помилку на ета..  Просмотрен 279

{return first*first;},

то буде видане повідомлення про помилку на етапі компіляції.

 

7.4.6. Значення формальних параметрів за умовчанням

 

У мові С++ при визначенні функцій допускається конструкція вигляду

<ReturnType>FunctionName(<type1>x1,<type2>x2,...,<typen>xn, <type n1>xn1=v1,<typen2>xn2=v2,...,<typenk>xnk=vk),

де ReturnType, typej – ідентифікатори типів даних, FunctionName – ідентифікатор імені функції, vj – константні вирази. Параметрам xn1,xn2,... ,xnk присвоюються константні вирази v1,v2,... ,vk безпосередньо в сигнатурі функції при її визначенні. Ці параметри називатимемо параметрами за умовчанням. Діє правило: якщо параметр є параметром за умовчанням, то всі параметри, які стоять праворуч від нього, також мають бути параметрами за умовчанням. Специфіка параметрів за умовчанням полягає в тому, що всі вони (чи частина з них) можуть бути відсутніми в момент виклику функції. Якщо в момент виклику кількість фактичних параметрів не менше кількості звичайних параметрів функції й не більше кількості всіх можливих параметрів (у протилежному випадку буде помилка), то після ініціалізації всіх можливих параметрів зліва направо компілятор буде вважати, що всі інші параметри ініціалізовані значеннями, які присвоєні їм у сигнатурі.

Нехай визначені функції:

void Name1(float x,int y,char z='b')

{printf("x=%0.1f y=%d z=%c\n",x,y,z)}

void Name2(float x,int y=16,char z='a')

{printf("x=%0.1f y=%d z=%c\n",x,y,z)}

Допускається такий їх виклик:

Name1(1.0,5,'g');

Предыдущая статья:Оголошення в операторах Следующая статья:Посилання й покажчики
page speed (0.0289 sec, direct)