Оголошення в операторах

У С++ знято обмеження на розміщення описувачів. Як відомо, в ANSI С описувач може міститись у тілі будь-якого складеного оператора (причому синтаксично більшість компіляторів вимагають його розміщення на початку тіла складеного оператора). У С++ змінну можна описувати будь-де, навіть усередині оператора:

for(int i=1;i<5;i++);

Це дає можливість скоротити дистанцію між оголошенням змінної та її першою появою у функції. При цьому область дії змінної – від місця оголошення чи визначення до кінця блоку.

Перевантаження функцій

У найпростішому випадку перевантаження функцій полягає у використанні низки однойменних функцій, що відрізняються за сигнатурами. Компілятор допускає визначення однойменних функцій FuncName вигляду

<type1>FuncName(<type11>x1,<type12>x2,...,<type1N1>xN1)

{//тіло функції}

<type2>FuncName(<type21>x1,<type22>x2,...,<type2N2>xN2)

{//тіло функції}

<typeM>FuncName(<typeM1>x1,<typeM2>x2,...,<typeMNM>XNM)

{//тіло функції}

Тут typeIJ – певний тип даних, xIJ – ідентифікатори змінних, N1, N2,..., N М – кількості аргументів функцій. Наприклад:

Int Name (int first)

{return first*first;}

Int Name (unsigned first)

{return first*first;}

int Name (int first,char*second)

{return first*strlen(second);}

Main()

{printf ("%d\n",Name(4));

printf ("%d\n";(unsigned)4);

printf ("%d\n",Name(4,"abc");}

Зазначимо, що в означення сигнатури не входить тип результату, який повертається функцією. Якщо до розглянутої вище послідовності функцій додати визначення, наприклад

Float Name(int first)

{return first*first;},

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: