Функции C ++

Функция - это группа операторов, которые вместе выполняют задачу. Каждая программа на C ++ имеет хотя бы одну функцию, а именноmain(), и все самые тривиальные программы могут определять дополнительные функции.

Вы можете разделить свой код на отдельные функции. Как разделить код между различными функциями - решать вам, но логически разделение обычно таково, что каждая функция выполняет определенную задачу.

Функция declarationсообщает компилятору имя функции, возвращаемый тип и параметры. Функцияdefinition предоставляет фактическое тело функции.

Стандартная библиотека C ++ предоставляет множество встроенных функций, которые может вызывать ваша программа. Например, функцияstrcat() для объединения двух строк функция memcpy() для копирования одной ячейки памяти в другую и многих других функций.

Функция известна под разными именами, такими как метод, подпрограмма, процедура и т. Д.

Определение функции

Общая форма определения функции C ++ выглядит следующим образом:

return_type function_name( parameter list ) {
   body of the function
}

Определение функции C ++ состоит из заголовка функции и тела функции. Вот все части функции -

  • Return Type- Функция может возвращать значение. Вreturn_type- тип данных значения, возвращаемого функцией. Некоторые функции выполняют нужные операции без возврата значения. В этом случае return_type - это ключевое словоvoid.

  • Function Name- Это настоящее имя функции. Имя функции и список параметров вместе составляют сигнатуру функции.

  • Parameters- Параметр похож на заполнитель. Когда функция вызывается, вы передаете значение параметру. Это значение называется фактическим параметром или аргументом. Список параметров относится к типу, порядку и количеству параметров функции. Параметры не обязательны; то есть функция может не содержать параметров.

  • Function Body - Тело функции содержит набор операторов, определяющих, что функция делает.

пример

Ниже приведен исходный код функции, называемой max(). Эта функция принимает два параметра num1 и num2 и возвращает самый большой из них -

// function returning the max between two numbers
 
int max(int num1, int num2) {
   // local variable declaration
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

Объявления функций

Функция declarationсообщает компилятору имя функции и способ вызова функции. Фактическое тело функции можно определить отдельно.

Объявление функции состоит из следующих частей -

return_type function_name( parameter list );

Для указанной выше функции max () следующее объявление функции:

int max(int num1, int num2);

Имена параметров не важны в объявлении функции, требуется только их тип, поэтому следующее также является допустимым объявлением:

int max(int, int);

Объявление функции требуется, когда вы определяете функцию в одном исходном файле и вызываете эту функцию в другом файле. В таком случае вы должны объявить функцию в верхней части файла, вызывающего функцию.

Вызов функции

При создании функции C ++ вы даете определение того, что функция должна делать. Чтобы использовать функцию, вам нужно будет вызвать или вызвать эту функцию.

Когда программа вызывает функцию, управление программой передается вызываемой функции. Вызываемая функция выполняет определенную задачу, и когда выполняется оператор return или когда достигается закрывающая скобка, завершающая функцию, она возвращает управление программой обратно в основную программу.

Чтобы вызвать функцию, вам просто нужно передать необходимые параметры вместе с именем функции, и если функция возвращает значение, вы можете сохранить возвращаемое значение. Например -

#include <iostream>
using namespace std;
 
// function declaration
int max(int num1, int num2);
 
int main () {
   // local variable declaration:
   int a = 100;
   int b = 200;
   int ret;
 
   // calling a function to get max value.
   ret = max(a, b);
   cout << "Max value is : " << ret << endl;
 
   return 0;
}
 
// function returning the max between two numbers
int max(int num1, int num2) {
   // local variable declaration
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

Я сохранил функцию max () вместе с функцией main () и скомпилировал исходный код. При запуске финального исполняемого файла он даст следующий результат:

Max value is : 200

Аргументы функций

Если функция должна использовать аргументы, она должна объявлять переменные, которые принимают значения аргументов. Эти переменные называютсяformal parameters функции.

Формальные параметры ведут себя как другие локальные переменные внутри функции и создаются при входе в функцию и уничтожаются при выходе.

При вызове функции аргументы могут быть переданы в функцию двумя способами:

Старший Нет Тип звонка и описание
1 Звонок по значению

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

2 Звонок по указателю

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

3 Звоните по ссылке

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

По умолчанию C ++ использует call by valueпередавать аргументы. В общем, это означает, что код внутри функции не может изменить аргументы, используемые для вызова функции, и вышеупомянутый пример при вызове функции max () использовал тот же метод.

Значения по умолчанию для параметров

Когда вы определяете функцию, вы можете указать значение по умолчанию для каждого из последних параметров. Это значение будет использоваться, если соответствующий аргумент оставлен пустым при вызове функции.

Это делается с помощью оператора присваивания и присвоения значений аргументам в определении функции. Если значение для этого параметра не передается при вызове функции, используется значение по умолчанию, но если значение указано, это значение по умолчанию игнорируется и вместо него используется переданное значение. Рассмотрим следующий пример -

#include <iostream>
using namespace std;
 
int sum(int a, int b = 20) {
   int result;
   result = a + b;
  
   return (result);
}
int main () {
   // local variable declaration:
   int a = 100;
   int b = 200;
   int result;
 
   // calling a function to add the values.
   result = sum(a, b);
   cout << "Total value is :" << result << endl;

   // calling a function again as follows.
   result = sum(a);
   cout << "Total value is :" << result << endl;
 
   return 0;
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат:

Total value is :300
Total value is :120