Аргументы функций по умолчанию.
// function.cpp: определяет точку входа для консольного приложения #include "stdafx.h" #include <iostream> #include <cmath> // описывает работу математической функции sqrt() - квадратный корень using namespace std; double heron_space(const double a = 5, const double b = 6.5, const double c = 10.7); //параметры функции инициализированы по умолчанию int main(int argc, char* argv[]) { cout << "S = " << heron_space() << endl << endl; // все параметры используются по умолчанию cout << "S = " << heron_space(10,5) << endl << endl; // только последний параметр используется по умолчанию cout << "S = " << heron_space(7) << endl << endl; // два последних параметра берутся по умолчанию, а первый равен 7 system("pause"); return 0; } double heron_space(const double a, const double b, const double c) // функция вычисления площади треугольника по формуле Герона { const double p = (a + b + c) / 2; // полупериметр cout << "a = " << a << "\nb = " << b << "\nc = " << c << endl; return (sqrt(p * (p - a) * (p - b) * (p - c))); // формула Герона для нахождения площади треугольника } |
При обращении к функции, можно опускать некоторые её аргументы, но для этого необходимо при объявлении прототипа данной функции проинициализировать её параметры какими-то значениями, эти значения и будут использоваться в функции по умолчанию. Аргументы по умолчанию должны быть заданы в прототипе функции. Если в функции несколько параметров, то параметры, которые опускаются должны находиться правее остальных. Таким образом, если опускается самый первый параметр функции, то все остальные параметры тоже должны быть опущены. Если опускается какой-то другой параметр, то все параметры, расположенные перед ним могут не опускаться, но после него они должны быть опущены. Разработаем программу, в которой объявим функцию с аргументами по умолчанию.
Параметры функции инициализированы по умолчанию в прототипе функции. Если при запуске функции не передавать ей значения, то по умолчанию будут использоваться аргументы 5, 6.5, 10.7. В строках 12, 13, 14 показаны различные способы использования функции heron_space() с аргументами по умолчанию. Данная функция heron_space вычисляет площадь треугольников по формуле Герона.Формула Герона позволяет вычислить площадь треугольника (S) по его сторонам a, b, c:
где р — полупериметр треугольника:
В строке 5 подключен стандартный заголовочный файл <cmath> для того, чтобы воспользоваться функцией вычисления корня квадратного sqrt() в строке 23. Результат работы программы показан на рисунке.
a = 5b = 6.5c = 10.7S = 11.1618 a = 10b = 5c = 10.7S = 24.8615 a = 7b = 6.5c = 10.7S = 21.9956Иногда при многократном использовании одной функции необходимо менять не все её параметры, в таком случае использование параметров по умолчанию очень удобно.