Типи користувацьких функцій у C ++

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

Для кращого розуміння аргументів та повернення функцій, визначені користувачем функції можна класифікувати як:

  • Функція без аргументу та зворотного значення
  • Функція без аргументу, але повернене значення
  • Функція з аргументом, але не повертає значення
  • Функція з аргументом і повернутим значенням

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

Приклад 1: Не передано аргументи і не повертається значення

 # include using namespace std; void prime(); int main() ( // No argument is passed to prime() prime(); return 0; ) // Return type of function is void because value is not returned. void prime() ( int num, i, flag = 0; cout <> num; for(i = 2; i <= num/2; ++i) ( if(num % i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << num << " is not a prime number."; ) else ( cout << num << " is a prime number."; ) ) 

У наведеній вище програмі prime()викликається з main () без аргументів.

prime() бере позитивне число у користувача і перевіряє, чи є число простим чи ні.

Оскільки тип повернення prime()is void, функція не повертає значення.

Приклад 2: Не передано аргументів, але повертається значення

 #include using namespace std; int prime(); int main() ( int num, i, flag = 0; // No argument is passed to prime() num = prime(); for (i = 2; i <= num/2; ++i) ( if (num%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout<  n; return n; ) 

У наведеній вище програмі prime()функція викликається main()з без аргументів.

prime()приймає ціле додатне число від користувача. Оскільки тип функції return - це an int, вона повертає введене число від користувача назад до функції, що викликає main().

Потім, чи є число простим чи ні, перевіряється в самому main () і друкується на екрані.

Приклад 3: Аргументи передані, але не повертається значення

 #include using namespace std; void prime(int n); int main() ( int num; cout <> num; // Argument num is passed to the function prime() prime(num); return 0; ) // There is no return value to calling function. Hence, return type of function is void. */ void prime(int n) ( int i, flag = 0; for (i = 2; i <= n/2; ++i) ( if (n%i == 0) ( flag = 1; break; ) ) if (flag == 1) ( cout << n << " is not a prime number."; ) else ( cout << n << " is a prime number."; ) )

У наведеній вище програмі позитивне число спочатку запитується у користувача, яке зберігається у змінній num.

Потім число передається prime()функції, де незалежно від того, чи є число простим чи ні, перевіряється та друкується.

Оскільки тип повернення prime()- a void, значення не повертається з функції.

Приклад 4: передані аргументи та повернене значення.

 #include using namespace std; int prime(int n); int main() ( int num, flag = 0; cout <> num; // Argument num is passed to check() function flag = prime(num); if(flag == 1) cout << num << " is not a prime number."; else cout<< num << " is a prime number."; return 0; ) /* This function returns integer value. */ int prime(int n) ( int i; for(i = 2; i <= n/2; ++i) ( if(n % i == 0) return 1; ) return 0; ) 

У наведеній вище програмі у користувача запитується додатне ціле число, яке зберігається у змінній num.

Потім numпередається функції, prime()де перевіряється, чи є число простим чи ні.

Оскільки тип повернення prime()- це int, 1 або 0 повертається до функції, що main()викликає. Якщо число є простим числом, повертається 1. Якщо ні, повертається 0.

Повернувшись до main()функції, повернене значення 1 або 0 зберігається у позначці змінної, а відповідний текст друкується на екрані.

Який метод кращий?

Усі вищезазначені чотири програми дають однакові результати, і всі технічно правильні програми.

Не існує жорсткого правила щодо того, який метод слід обрати.

Конкретний метод вибирається залежно від ситуації та способу вирішення проблеми.

Цікаві статті...