Функция C ++ (с примери)

В този урок ще научим за функцията C ++ и функционалните изрази с помощта на примери.

Функцията е блок от код, който изпълнява определена задача.

Да предположим, че трябва да създадем програма, за да създадем кръг и да го оцветим. Можем да създадем две функции за решаване на този проблем:

  • функция за изчертаване на кръга
  • функция за оцветяване на кръга

Разделянето на сложен проблем на по-малки парчета прави нашата програма лесна за разбиране и повторна употреба.

Има два типа функции:

  1. Стандартни библиотечни функции: Предварително дефинирани в C ++
  2. Потребителска функция: Създадена от потребители

В този урок ще се съсредоточим най-вече върху дефинирани от потребителя функции.

C ++ дефинирана от потребителя функция

C ++ позволява на програмиста да дефинира собствената си функция.

Дефинирана от потребителя функция групира код за изпълнение на конкретна задача и на тази група код се дава име (идентификатор).

Когато функцията се извиква от която и да е част от програмата, тя изпълнява кодовете, дефинирани в тялото на функцията.

Декларация за функциите на C ++

Синтаксисът за деклариране на функция е:

 returnType functionName (parameter1, parameter2,… ) ( // function body )

Ето пример за декларация на функция.

 // function declaration void greet() ( cout << "Hello World"; )

Тук,

  • името на функцията е greet()
  • типът на връщане на функцията е void
  • празните скоби означават, че няма никакви параметри
  • тялото на функцията е написано вътре ()

Забележка: Ще научим за този урок returnTypeи parametersпо-късно.

Извикване на функция

В горната програма декларирахме функция с име greet(). За да използваме greet()функцията, трябва да я извикаме.

Ето как можем да извикаме горната greet()функция.

 int main() ( // calling a function greet(); )
Как работи функцията в C ++

Пример 1: Показване на текст

 #include using namespace std; // declaring a function void greet() ( cout << "Hello there!"; ) int main() ( // calling the function greet(); return 0; )

Изход

 Здравей!

Функционални параметри

Както бе споменато по-горе, функция може да бъде декларирана с параметри (аргументи). Параметърът е стойност, която се предава при деклариране на функция.

Например, нека разгледаме функцията по-долу:

 void printNum(int num) ( cout << num; )

Тук intпроменливата num е параметърът на функцията.

Предаваме стойност на параметъра на функцията, докато извикваме функцията.

 int main() ( int n = 7; // calling the function // n is passed to the function as argument printNum(n); return 0; )

Пример 2: Функция с параметри

 // program to print a text #include using namespace std; // display a number void displayNum(int n1, float n2) ( cout << "The int number is " << n1; cout << "The double number is " << n2; ) int main() ( int num1 = 5; double num2 = 5.5; // calling the function displayNum(num1, num2); return 0; )

Изход

 Int числото е 5 Двойното число е 5.5

В горната програма използвахме функция, която има един intпараметър и един doubleпараметър.

След това предаваме num1 и num2 като аргументи. Тези стойности се съхраняват съответно от функционалните параметри n1 и n2.

C ++ функция с параметри

Забележка: Типът на аргументите, предадени при извикване на функцията, трябва да съвпада със съответните параметри, дефинирани в декларацията на функцията.

Декларация за връщане

В горните програми използвахме void в декларацията за функция. Например,

 void displayNumber() ( // code )

Това означава, че функцията не връща никаква стойност.

Възможно е също да върнете стойност от функция. За това трябва да посочим returnTypeфункцията по време на декларацията за функция.

След това returnизразът може да се използва за връщане на стойност от функция.

Например,

 int add (int a, int b) ( return (a + b); )

Тук имаме типа данни intвместо void. Това означава, че функцията връща intстойност.

Кодът return (a + b);връща сумата от двата параметъра като стойност на функцията.

В returnизявление означава, че функцията е приключила. Код след returnвътрешната функция не се изпълнява.

Пример 3: Добавете две числа

 // program to add two numbers using a function #include using namespace std; // declaring a function int add(int a, int b) ( return (a + b); ) int main() ( int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; )

Изход

 100 + 78 = 178

В горната програма add()функцията се използва за намиране на сумата от две числа.

intПредаваме два литерала 100и 78докато извикваме функцията.

Съхраняваме върнатата стойност на функцията в променливата sum и след това я отпечатваме.

Работа на C ++ функция с оператор return

Забележете, че sum е променлива от intтип. Това е така, защото връщаната стойност на add()е от intтип.

Прототип на функция

In C++, the code of function declaration should be before the function call. However, if we want to define a function after the function call, we need to use the function prototype. For example,

 // function prototype void add(int, int); int main() ( // calling the function before declaration. add(5, 3); return 0; ) // function definition void add(int a, int b) ( cout << (a + b); )

In the above code, the function prototype is:

 void add(int, int);

This provides the compiler with information about the function name and its parameters. That's why we can use the code to call a function before the function has been defined.

The syntax of a function prototype is:

 returnType functionName(dataType1, dataType2,… );

Example 4: C++ Function Prototype

 // using function definition after main() function // function prototype is declared before main() #include using namespace std; // function prototype int add(int, int); int main() ( int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; ) // function definition int add(int a, int b) ( return (a + b); )

Output

 100 + 78 = 178

The above program is nearly identical to Example 3. The only difference is that here, the function is defined after the function call.

That's why we have used a function prototype in this example.

Benefits of Using User-Defined Functions

  • Functions make the code reusable. We can declare them once and use them multiple times.
  • Functions make the program easier as each small task is divided into a function.
  • Functions increase readability.

C++ Library Functions

Library functions are the built-in functions in C++ programming.

Programmers can use library functions by invoking the functions directly; they don't need to write the functions themselves.

Some common library functions in C++ are sqrt(), abs(), isdigit(), etc.

In order to use library functions, we usually need to include the header file in which these library functions are defined.

For instance, in order to use mathematical functions such as sqrt() and abs(), we need to include the header file cmath.

Example 5: C++ Program to Find the Square Root of a Number

 #include #include using namespace std; int main() ( double number, squareRoot; number = 25.0; // sqrt() is a library function to calculate the square root squareRoot = sqrt(number); cout << "Square root of " << number << " = " << squareRoot; return 0; )

Output

 Квадратен корен от 25 = 5

В тази програма функцията sqrt()библиотека се използва за изчисляване на квадратния корен на число.

Декларацията на функцията на sqrt()е дефинирана в cmathзаглавния файл. Ето защо трябва да използваме кода, за #include да използваме sqrt()функцията.

За да научите повече, посетете функциите на стандартната библиотека на C ++.

Интересни статии...