Основы использования функций.

 

Функции – этьо подпрограммы , которые содержат одну или несколько инструкций. Функции называются строительными блоками С++, поскольку программа в С++ , как правило, представляет собой коллекцию функций.

 

Общий формат С++ функций

Все С++ функции имеют общий формат

Тип_возвращаемого значения имя (список _параметров)

{

// тело функции

}

 

С помощью элемента тип_возвращаемого_значения указывается тип значения возвращаемого функцией. Это может быть любой тип , за исключением массива. Если функция не возвращает никакого значения , необходимо указать тип 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

}