Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 6_Основы функции.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
257.54 Кб
Скачать

6.3. Использование аргументов

В созданную вами функцию можно передать одно или несколько значений. Значение, передаваемое в вызываемую функцию, называется аргументом. Аргументы позволяют передать в функцию некоторую информацию.

Когда вы создаете функцию, которая принимает один или больше аргументов, переменные, которые будут принимать эти аргументы, так же должны быть объявлены. Эти переменные называются параметрами функции. Ниже приведен пример определения функции с именем bох(), которая вычисляет объем коробки и выводит результат на экран. Она имеет три параметра, характеризующие длину (length), ширину (width) и высоту (height) коробки:

void box(int length, int width, int height)

{

cout << "объем коробки равен " << length * width * height << "\n" ;

}

Каждый раз, когда вызывается функция box( ), она вычисляет объем коробки, умножая значения, передаваемые ей в переменные length, width и height.

Вызывая box(), вы должны задать три аргумента, например:

box(7, 20, 4) ;

box(50, 3, 2) ;

box(8 , 6 , 9 ) ;

Значения, указанные между круглыми скобками, представляют собой аргументы, передаваемые в box (), причем значение каждого аргумента копируется в соответствующий ему параметр. Таким образом, при первом вызове box () 7 копируется в length, 20 копируется в width, а 4 копируется в height. При втором вызове box () 50 копируется в length, 3 копируется в width, а 2 копируется в height. При третьем вызове 8 копируется в length, 6 копируется в width, а 9 копируется в height.

Приведенная ниже программа демонстрирует использование функции bох( ):

// Простая программа, демонстрирующая использование bох().

#include <iostream>

using namespace std;

// Вычисление объема коробки.

void box(int length, int width, int height)

{

cout << "объем коробки равен " << length * width * height << "\n" ;

}

int main()

{

box (7 , 20, 4) ;

box(50, 3, 2);

box (8, 6 , 9 ) ;

return 0;

}

Вывод программы:

объем коробки равен 560

объем коробки равен 300

объем коробки равен 432

6.4. Прототипы функций

В C++ все функции должны быть объявлены до их использования. До сих пор мы решали эту проблему, объявляя все функции до главной функции, что автоматически делало их пригодными для использования в программе. Однако это отнюдь не лучший способ объявления функций в C++. Предпочтительный способ объявления функций - использование прототипа функции.

В C++ прототип функции — это заголовок функции, за которым следует символ точки с запятой:

возвращаемый_тип имя_функции(список_параметров);

Прототип функции объявляет функцию перед ее определением. Прототип позволяет компилятору узнать тип возвращаемого функцией значения, а также число и типы параметров этой функции. Компилятор должен иметь всю эту информацию к тому моменту, когда он столкнется первым вызовом функции. Именно поэтому прототип располагает перед main(). Единственная функция, которой не требуется прототип - главная функция main(), прототип которой предопределен в С++.

Следующий пример демонстрирует создание прототипа функции и объявление функций после главной функции и

// Использование прототипа функций

#include <iostream>

using namespace std;

void prototyped_hello(); // прототип функции, какое-либо тело

// функции отсутствует

int main(int argc, char* argv[])

{

prototyped_hello();

return 0;

}

void prototyped_hello() // тело функции, определенное после

// главной функции

{

cout << "prototype of function" << endl;

}

Если функция имеет список параметров, в прототипе функции имена параметров можно опустить. Следующий пример демонстрирует создание прототипа функции со списком параметров:

// void prototyped_func(int i, char с, double d);

или

void prototyped_func(int, char, double);

int main(int argc, char* argv[])

{

prototyped_func(0, 'a', 1.0);

return 0;

}

void prototyped_func(int i, char c, double d)

{

cout << i <<' ' << c << ' ' << d << endl;

}