ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 5) онлайн
Передача констант в функцию
В качестве примера рассмотрим следующую ситуацию. Пусть нам необходимо сделать функцию starline() более гибкой: мы хотим изменить ее таким обра- зом, чтобы она выводила не фиксированное (равное 45 в предыдущих примерах), а любое заданное количество символов. В следующем примере, TABLEARG, мы создаем модификацию функции starline() под названием repchar(). В качестве аргументов для функции используется символ, предназначенный для печати, а также число раз, которое данный символ будет выведен на экран.
// tablearg.cpp
// демонстрирует передачу аргументов в функцию #include <iostream> using namespace std;
void repchar(char, int); // прототип функции
int main() {
repchar('-', 43); // вызов функции
cout << "Тип данных Диапазон" << endl; repchar('=', 23); // вызов функции
cout << "char -128...127" << endl
<< "short -32.768...32.767" << endl
<< "int Системно-зависимый " << endl
<< "double -2.147.483.648...2.147.483.647" << endl; repchar('-', 43); // вызов функции
return 0;
}
//--------------------------------------------------------
// определение функции repchar()
void repchar(char ch, int n) // заголовок функции {
for( int j=0; j<n; j++ ) // тело функции cout << ch; cout << endl;
}
Итак, новая функция называется repchar(). Ее прототип выглядит следующим образом:
void repchar(char, int); //объявление с указанием типов аргументов
В скобках указаны типы данных, которые будут иметь передаваемые в функ- цию аргументы: char и int.
При вызове функции вместо аргументов в скобках указываются их конкрет- ные значения (в данном случае константы):
repchar('-', 43); // в вызове функции используются значения аргументов
Результатом данного вызова будет печать 43 символов '-'. При указании зна- чений аргументов важно соблюдать порядок их следования: сначала должно быть указано значение типа char, соответствующее символу, выводимому на экран, а затем значение типа int, которое определяет число раз, которое указан- ный символ будет напечатан. Кроме того, типы аргументов в объявлении и оп- ределении функции также должны быть согласованы.
Вызов функции repchar() repchar('=', 23);
приведет к появлению на экране 23 знаков равенства. Третий вызов снова выве- дет на печать 43 знака '-'. Результат работы программы TABLEARG будет выгля- деть следующим образом:
--------------------------------------------------------
Тип данных Диапазон
===========================
Char -128 to 127
Short -32.768 to 32.767
int -Системно-зависимый
Long -2.147.483.648 to 2,147.483,647
--------------------------------------------------------
Программа передает в функцию аргументы, например '-' и 43. Переменные, используемые внутри функции для хранения значений аргументов, называются параметрами. В функции repchar() в качестве параметров выступают перемен- ные ch и n (необходимо отметить, что многие программисты используют терми- ны аргумент и параметр как эквивалентные). При определении функции в ее заголовке мы указываем типы и имена параметров:
void repchar(char ch, int n) ; // в прототипе указаны типы и имена параметров
Параметры используются внутри функции так же, как обычные переменные. Присутствие имен n и ch в прототипе функции repchar() эквивалентно паре опе- раторов:
char ch; int n;
Когда вызов функции произведен, параметры автоматически инициализиру- ются значениями, переданными программой.
Передача значений переменных в функцию
В примере TABLEARG роль аргументов выполняли константы: '-', 43 и т. д. Теперь давайте рассмотрим пример, в котором вместо констант в функцию будут пере- даваться значения переменных. Следующая программа, VARARG, включает в себя ту же функцию repchar(), что и программа TABLEARG, но теперь символ и число его повторений будут задаваться пользователем:
// vararg.cpp
// передача переменных в функцию в качестве аргументов
#include <iostream> using namespace std;
void repchar(char, int); // объявление функции
int main() {
char chin; int nin;
cout << "Введите символ: "; cin >> chin;
cout << "Введите число повторений символа: "; cin >> nin; repchar(chin, nin); return 0;
}
// --------------------------------------------------------
// определение функции repchar()
void repchar(char ch, int n) // заголовок функции {
for(int j=0; j<n; j++) // тело функции
cout << ch; cout << endl;
}
Пример взаимодействия программы VARARG с пользователем может выгля- деть так:
Введите символ: +
Введите число повторений символа: 20
++++++++++++++++++++
В этой программе переменные chin и nin функции main() передаются в каче- стве аргументов в функцию repchar();
repchar(chin, nin); // вызов функции
Типы переменных, используемых в качестве аргументов функции, должны, как и в случае констант, совпадать с типами, указанными в объявлении и опре- делении функции. В данном случае это требование сводится к тому, чтобы пере- менная chin имела тип char, а переменная nin имела тип int.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
Схожі підручники
- Конспект лекцій з курсу Введення у фінансову діяльність (частина 1)
- РЕГІОНАЛЬНА ЕКОНОМІКА. Тексти лекцій онлайн (частина 2)
- Белая книга (частина 1) (онлайн)
- Бухгалтерський фінансовий облік (частина 2)
- Розрахункова робота з курсу Економыка Пыдприэмства
- Міжнародні економічні зв’язки України та її інтеграція в європейські та інші світові структури
