- •Глава 5. Функции
- •Объявление и определение функций
- •Вызов функций
- •Локальные и глобальные переменные
- •Передача аргументов в функцию по значению
- •Передача аргументов в функцию по ссылке
- •Ссылка в качестве возвращаемого значения функции
- •Встраиваемые функции
- •Перегрузка функций
- •Использование аргументов по умолчанию
- •Использование стандартных функций в программе
Использование аргументов по умолчанию
Язык С++ позволяет задать аргументам функции значения по умолчанию. В этом случае один или несколько аргументов функции при её вызове могут отсутствовать, тогда им передаются значения по умолчанию. Для того чтобы задать аргументу значение по умолчанию, нужно в заголовке функции поставить после соответствующего ему параметра знак равенства (=) и значение по умолчанию:
void fun(int arg1 = 0, int arg2 = 100);
void fun(int = 0, int = 100);
Оба прототипа функции fun() эквивалентны.
Если при вызове функции часть аргументов отсутствует, то компилятор считает, что эти аргументы находятся в конце списка аргументов:
fun(); // arg1 = 0, arg2 = 100
fun(10); // arg1 = 10, arg2 = 100
fun(5, 6); // arg1 = 5, arg2 = 6
т.е. все параметры в заголовке функции, которые задают для аргументов значения по умолчанию, должны находиться в конце списка.
В качестве значения аргумента по умолчанию может выступать любое корректное для инициализации выражение этого же типа.
При создании функции с аргументами по умолчанию их следует задать единожды: либо в прототипе функции, либо в заголовке её определения, но не вместе.
Если значение по умолчанию не задано, а соответствующий аргумент при вызове функции отсутствует, то это вызывает ошибку компиляции.
Использование аргументов по умолчанию представляет собой самую простую форму перегрузки функций.
// Пример 5.12. Написать функцию для вычисления площади квадрата
// или прямоугольника, используя аргументы по умолчанию.
#include <iostream>
using namespace std;
float area(float l, float w = 0){
if(!w) w = l;
return l * w;
}
int main(){
float x, y;
cout<<"vvedi storonu kvadrata: "; cin>>x;
cout<<"area kvadrata = "<<area(x)<<endl;
cout<<"vvedi storoni pryamougolnika: "; cin>>x>>y;
cout<<"area pryamougolnika= "<<area(x, y)<<endl;
system("pause");
}
Использование стандартных функций в программе
В программе можно использовать стандартные функции, объявления которых находятся в специальных заголовочных файлах. Включение такого файла в текст программы выполняется директивой компилятора:
#include <имя_файла>
Так например, основные математические функции находятся в файле cmath. Для их использования в начале текста программы следует включать строку:
#include <cmath>
Функция system() находится в файле iostream. Для использования данной функции в текст программы включается строка:
#include <iostream>