ФУНКЦИИ МОГУТ ВОЗВРАЩАТЬ РЕЗУЛЬТАТ ВЫЗВАВШЕЙ ФУНКЦИИ
Функция должна выполнять определенную задачу для вашей программы. В большинстве случаев функции будут выполнять некоторые типы вычислений. Затем функция возвратит свой результат вызвавшей функции. Когда функция возвращает значение, вы должны сообщить C++ тип значения, например int, float, char т. д. Чтобы информировать C++ о типе возвращаемого функцией значения, просто поставьте перед именем функции соответствующий тип. Например, следующая функция add_values складывает два своих целочисленных параметра и возвращает результат типа int вызвавшей программе:
int add_values (int а, int b)
{
int result;
result=а+b;
return (result);
}
В данном случае слово int, появляющееся перед именем функции, указывает тип возвращаемого значения функции. Функции используют оператор return для возврата значения вызвавшей функции. Когда ваша программа встречает оператор return, она возвращает заданное значение и завершает выполнение функции, возвращая управление вызвавшей программе. В программе вы можете использовать возвращаемое значение, как показано ниже:
result=add_values (1, 2);
В данном случае программа присваивает возвращаемое функцией значение переменной result. Ваша программа может также сразу же напечатать возвращаемое функцией значение с помощью cout, как показано ниже:
cout "Сумма значений равна " add_values (500, 501) endl;
Предыдущая реализация функции add_values использовала три оператора, чтобы было легче понять смысл функции. Однако вы можете сократить функцию до единственного оператора return, как показано ниже:
int add_values (int a, int b)
{
return (a+ b);
}
Следующая программа ADDVALUE.CPP использует функцию add_values для сложения нескольких значений:
#include iostream.h
int add_values (int a, int b)
{
return (a+ b);
}
void main (void)
{
cout " 100 + 200 = " add_values(100, 200) endl;
cout " 500 + 501 = " add_values(500, 501) endl;
cout "-1 + 1 = " add_values(-1, 1) endl;
}
Выберите время для эксперимента с этой программой, изменяя значения, которые программа передает в функцию. Вы могли бы попытаться передать в функцию большие значения, например 20000 и 30000. Как и можно предложить, выполнение функции, возвращающей значение типа int, приведет к ошибке переполнения.
Не все функции возвращают значение типа int. Следующая функция average_value возвращает среднее двух целочисленных значений, которое может быть дробным, например 3.5:
float average_value(int a, int b)
{
return( (a + b) / 2.0);
}
В этом случае слово float, которое предшествует имени функции, указывает тип возвращаемого функцией значения.