Основы использования функций.
Функции – этьо подпрограммы , которые содержат одну или несколько инструкций. Функции называются строительными блоками С++, поскольку программа в С++ , как правило, представляет собой коллекцию функций.
Общий формат С++ функций
Все С++ функции имеют общий формат
Тип_возвращаемого значения имя (список _параметров)
{
// тело функции
}
С помощью элемента тип_возвращаемого_значения указывается тип значения возвращаемого функцией. Это может быть любой тип , за исключением массива. Если функция не возвращает никакого значения , необходимо указать тип void.
В качестве имени можно использовать любой допустимый идентификатор, который еще не был задействован в программе.
После имени функции в круглых скобках указывается список параметров, который представляет собой список пар ( состоящих из типа данных и имени ), разделенных запятыми.
Параметры – это по сути переменные, которые получают значения аргументов, передаваемых функции при вызове.
Если функции не имеют параметров, то круглые скобки остаются пустыми.
В фигурные скобки заключено тело функции. Тело функции составляют С++-инструкции, которые определяют действие функции. Функция завершается ( и управление передается вызывающей процедуре) при достижении закрывающейся скобки или инструкции return
Создание функции.
#include<iostream>
using namespace std;
void myfunc();// прототип функции myfunc()
void main()
{
cout<<”В функции main().”<<endl;
myfunc();
cout<<”Снова в функции main().”<<endl;
}
// Определение функции myfunc()
void myfunc()
{
cout<<”В функции myfunc().”<<endl;
}
Использользование аргументов
Функции можно передать одно или несколько значений. Значение передаваемое функции называется аргументом.Таким образом, аргументы представляют собой средсьво передачи инициализации в функцию.
При создании функции, которая принимает одно или несколько аргументов, необходимо объявить переменные, которые получат значения этих аргументов. Эти переменные называются параметрами функции.
#include<iostream>
using namespace std;
void box(int length, int width, int height);// прототип функции
void main()
{
box(7,20,4);
box(50,3,2);
box(8,6,9);
}
// Определение функции box()
void box(int length, int width, int height)
{
cout<<” Объем параллелепипеда равен ”<< lengtht* width* height <<endl;
}
Использользование инструкции return
В предыдущих примерах возврат из функции к инициатору ее вызова происходил при обнаружении фигурной скобки. Однако это приемлимо не для всех функций.
Возврат значений.
Использование функции в выражениях
Правила действия областей видимости функций.
Локальная область видимости
Локальные переменные можно объявлять внутри любого блока.
Сокрытие имен
Параметры функции
Глобальная область видимости
Передача указателей и массивов в качестве аргументов функций
Передача функции указателя
Передача функции массива
Передача функциям строк
Возвращение функциями указателей
Оформление функции в С++
Тип имя функции (список формальных параметров);
Типы функции
int
double
char
void (не возвращает значений)
Функция - именованный набор операторов.
Если р1 и р2 функции, и р1 вызывает р2, то р2 должна быть описана раньше р1.
Если тело функции идет после main() , то перед main() должен стоять прототип функции.
Пример 1
Функция плюс
# include <iostream.h>
void plus (int,int,int); // прототип функции plus, параметры переданы по значению
void plus1 (int,int,int&); // прототип функции plus1, последний параметр передан по ссылке
int plus2(int, int) //результат функции число типа int
Void main()
{
int a=4; int b=5; int c=10;
cout<<”plus()”<<endl;
plus(a,b,c);
cout<<”c=”<<c<<endl; //9
plus1(a,b,c);
cout<<”c=”<<c<<endl; //10
int c2=plus2(a,b);
cout<<”c2=”<<c2<<endl; //9
// Возможен вариант
cout<<”plus2()=”<<plus2(a,b)<<endl; //9
}