C++ Функции с примерами программ

⚡ Умное резюме

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

  • 🧩 Что это: Функция объединяет операторы, которые принимают параметры, обрабатывают их и возвращают значение, выполняя общую задачу из одного блока.
  • 📚 Встроенные функции: C++ В стандартной библиотеке уже есть готовые функции, такие как sqrt(), которые можно вызывать напрямую, не записывая их вручную.
  • 🇧🇷 Функции, определяемые пользователем: Программисты создают собственные функции, присваивают им уникальные имена и вызывают этот код из любой точки программы.
  • ???? Заявление и определение: Прототип определяет тип возвращаемого значения, его имя и типы аргументов; определение содержит тело функции.
  • 📞 Призыв и аргументы: Вызов функции запускает её тело; аргументы должны совпадать с параметрами по количеству и типу, допускаются значения по умолчанию.
  • 🤖 Помощь ИИ: GitHub Copilot и аналогичные вспомогательные инструменты создают основу для работы. C++ Сигнатуры функций, тела и вызовы из короткого комментария.

C++ функции

Что такое функция в C++?

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

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

В программе имеется множество встроенных функций. C++ стандартная библиотека. Вы можете вызывать эти функции в своей программе.

Зачем использовать функции?

Существует множество преимуществ, связанных с использованием функций. К ним относятся:

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

Встроенные функции

In C++Функции библиотеки являются встроенными. C++ функции. Чтобы использовать эти функции, вы просто вызываете их напрямую. Вам не нужно писать функции самостоятельно.

Пример 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

Выход:

Выход C++ Пример использования встроенной функции sqrt()

Вот скриншот кода:

C++ код, вызывающий встроенную функцию sqrt() из cmath

Code Объяснение:

  1. Включите заголовочный файл iostream в нашу программу, чтобы использовать его функции.
  2. Включите библиотеку cmath, чтобы использовать ее функции. Мы хотим использовать определенную в нем функцию sqrt().
  3. Включите пространство имен std в наш код, чтобы использовать его классы, не вызывая его.
  4. Вызовите функцию main(). Логику программы следует добавить в тело этой функции.
  5. Объявите две переменные типа Double: num и SquareRoot.
  6. Напечатайте текст на консоли. В тексте пользователю предлагается ввести число.
  7. Чтение ввода пользователя с клавиатуры. Входными данными станет значение переменной num.
  8. Вызовите библиотечную функцию sqrt(), которая вычисляет квадратный корень числа. Мы передали функции параметр num, то есть она вычислит квадратный корень из num. Эта функция определена в библиотеке cmath.
  9. Выведите на консоль число, введенное пользователем, его квадратный корень и другой текст.
  10. Программа должна вернуть значение после успешного завершения.
  11. Конец тела функции main().

Пользовательские функции

C++ позволяет программистам определять свои собственные функции. Целью функции является группировка связанного кода. Затем коду присваивается уникальный идентификатор — имя функции.

Функцию можно вызвать/вызвать из любой другой части программы. Затем он выполнит код, определенный в его теле.

Пример 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

Выход:

Выход C++ пользовательская функция sayHello()

Вот скриншот кода:

C++ код, определяющий и вызывающий пользовательскую функцию

Code Объяснение:

  1. Включите заголовочный файл iostream в нашу программу, чтобы использовать его функции.
  2. Включите пространство имен std в наш код, чтобы использовать его классы, не вызывая его.
  3. Создайте пользовательскую функцию с именемsayHello().
  4. Выведите некоторый текст на консоль при вызове функции SayHello().
  5. Конец тела функции SayHello().
  6. Вызовите функцию main(). Логику программы следует добавить в тело этой функции.
  7. Вызовите/вызовите функцию SayHello().
  8. Программа должна вернуть значение после успешного завершения.
  9. Конец тела функции main().

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

Объявление функции/прототип

Если вы определяете пользовательскую функцию после функции main(), C++ компилятор вернет ошибку. Причина в том, что компилятор не знает деталей пользовательской функции. Подробности включают его имя, типы аргументов и типы их возвращаемых значений.

In C++, объявление/прототип функции объявляет функцию без тела. Это дает компилятору сведения о пользовательской функции.

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

C++ Диаграмма синтаксиса объявления/прототипа функции

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

Цель объявления функции — сообщить C++ компилятору имя функции, тип возвращаемого значения и параметры. Определение функции сообщает C++ компилятор о теле функции.

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

Синтаксис

return_datatype function_name( parameters) {
   function body 
}

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

  • return_datatype — Некоторые функции возвращают значение. Этот параметр указывает тип данных возвращаемого значения. Некоторые функции не возвращают значение. В этом случае значение этого параметра становится void.
  • имя_функции — это имя функции. Имя функции и параметры образуют сигнатуру функции.
  • Параметры — это тип, порядок и количество параметров функции. Некоторые функции не имеют параметров.
  • Тело функции — это операторы, определяющие, что будет делать функция.

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

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

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

C++ диаграмма синтаксиса вызова функции

Передача аргументов

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

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

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

Пример 3: Как написать и вызвать функцию

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

Выход:

Выход C++ Функция addFunc() возвращает сумму.

Вот скриншот кода:

C++ код, передающий аргументы функции addFunc()

Code Объяснение:

  1. Включите заголовочный файл iostream в нашу программу, чтобы использовать его функции.
  2. Включите пространство имен std в наш код, чтобы использовать его классы, не вызывая его.
  3. Объявите функцию с именем addFunc(), которая принимает два целочисленных параметра. Это создает прототип функции.
  4. Вызовите функцию main(). Логику программы следует добавить в тело этой функции.
  5. Объявите три целочисленные переменные: x, y и sum.
  6. Напечатайте текст на консоли. В тексте пользователю предлагается ввести два числа.
  7. Прочитайте вводимые пользователем данные с клавиатуры. Пользователь должен ввести два числа для переменных x и y, разделенных пробелом.
  8. Вызовите функцию addFunc() и передайте ей параметры x и y. Функция будет работать с этими параметрами и присваивать выходные данные переменной sum.
  9. Выведите значения переменных x, y и sum на консоль вместе с другим текстом.
  10. Функция должна возвращать значение после успешного завершения.
  11. Конец тела функции main().
  12. Определение функции. Мы определяем функцию addFunc(). Мы укажем, что будет делать функция, в ее теле { }.
  13. Объявление целочисленной переменной с именем addFunc.
  14. Сложение значений параметров num1 и num2 и присвоение результата переменной addFunc.
  15. Функция addFunc() должна возвращать значение переменной addFunc.
  16. Конец тела функции, то есть определения функции.

Часто задаваемые вопросы (FAQ)

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

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

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

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

Параметр передается в виде указателя или массива определенного размера, и обычно его длина указывается отдельно, поскольку массив в конечном итоге преобразуется в указатель. См. раздел «Передача». массивы в C++ Функции Полные примеры решения задач см. здесь.

Функция возвращает одно значение напрямую, но вы можете вернуть несколько значений, используя выходные ссылочные параметры, структуру, std::pair, std::tuple или std::vector. Затем структурированные привязки распаковывают возвращенный кортеж в месте вызова.

Да. Искусственный интеллект, помогающий программистам, превращает простой комментарий в полноценный код. C++ Они предлагают функцию, указывая сигнатуру, тело и тип возвращаемого значения. Также они выполняют рефакторинг длинных функций, хотя вам следует проверить сгенерированную логику.

Второй пилот GitHub автозаполнение C++ Он обрабатывает определения функций, прототипы и вызовы из ваших комментариев или имен, предлагает перегрузки и разрабатывает черновики модульных тестов. Он использует ссылки на заголовочные файлы для контекста, но каждое предложение все равно требует проверки.

Подведем итог этой публикации следующим образом: