Типы пользовательских функций в 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()принимает от пользователя положительное целое число. Поскольку тип возвращаемого значения функции - это 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.

Затем 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, main()вызывающей функции возвращается 1 или 0 . Если число является простым числом, возвращается 1. Если нет, возвращается 0.

Вернувшись в main()функцию, возвращаемый 1 или 0 сохраняется во флаге переменной, а соответствующий текст печатается на экране.

Какой способ лучше?

Все четыре вышеуказанные программы дают одинаковый результат, и все они являются технически правильными программами.

Не существует жесткого правила, какой метод следует выбрать.

Конкретный метод выбирается в зависимости от ситуации и того, как вы хотите решить проблему.

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