Виклик функції здійснюється в потрібному місці програми за її іменем (аналогічно як і для стандартних бібліотечних функцій) у такому загальному форматі:
ім’я_функції([список_аргументів])
Поле список_аргументів задає значення фактичних параметрів, які підставлються у відповідні формальні параметри. На відміну від списку формальних параметрів у списку аргументів не потрібно вказувати тип аргумента, достатньо записати лише ідентифікатор. В загальному випадку аргумент може задаватися виразом відповідного типу, тобто типу який співпадає з типом відповідного формального параметра в описі функції. Під час виклику функції у формальні параметри підставляються значення аргументів у тому порядку, в якому вони задані при виклику функції. Кількість формальних параметрів функції та аргументів повинні співпадати (за винятком випадку коли формальні параметри мають значення за замовчуванням). Якщо у функції відсутні формальні параметри, то при виклику такої функції повинен також бути відсутнім і список аргументів (але пара дужок () при виклику залишається).
|
|
Якщо функція має тип результату відмінний від void, то її виклик має бути записаний як частина певного виразу або оператора (найчастіше це є оператор присвоєння або оператор виведення). Так, наприклад, для описаної вище функції max правильними, як з синтаксичної, так і з семантичної точок зору, є такі можливі виклики:
z = max(x,y); або cout<<max(x+y, 25); або if (max(a,b)>0) c=a;
У той же час виклики цієї ж функції вигляду max(x,y); хоча і є допустимими синтаксично, семантично (тобто за смислом) позбавлені сенсу, оскільки результат, який функція повертає у точку виклику не обробляється тим чи іншим чином. Тим більше, не можна функції присвоювати значення: max(x,y)=20;
Якщо функція має результат типу void, то єдиним можливим способом звертання до неї є виклик у вигляді окремого оператора, наприклад (для описаної вище функції divide):
divide(x,y);
Для цієї ж функції неправильними будуть такі виклики:
cout<< divide(x,y); або z= divide(x,y);