logo
Харви Дейтел, Пол Дейтел Как программировать на С++ / 02-Deitel-Стр-115-214

178 Глава 3

План

  1. Введение

  2. Программные модули в С++

  3. Математические библиотечные функции

  4. Функции

  5. Определение функций

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

  7. Заголовочные файлы

  8. Генерация случайных чисел

  9. Пример: азартная игра З.Ю.Классы памяти

  1. Правила, определяющие область действия

  2. Рекурсия

  3. Пример использования рекурсии: последовательность чисел Фибоначчи

3.14.Рекурсии или итерации

  1. Функции с пустыми списками параметров

  2. Встраиваемые функции

  3. Ссылки и ссылочные параметры 3.18.Аргументы по умолчанию

3.19.Унарная операция разрешения области действия

3.20.Перегрузка функций

3.21.Шаблоны функции

3.22.Размышления об объектах: идентификация атрибутов

Резюме Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности Заме­чания по мобильности • Замечания по технике программирования Уп­ражнения для самопроверки • Ответы на упражнения для самопроверки Упражнения

3.1. Введение

Большинство компьютерных программ, решающих реальные практичес­кие задачи, намного превышают те программы, которые были представлены в первых главах. Экспериментально показано, что наилучшим способом созда­ния и поддержки больших программ является их конструирование из малень-

Функции 179

ких фрагментов, или модулей, каждый из которых более управляем, чем слож­ная программа. Эта техника называется разделяй и властвуй. В этой главе описываются многие ключевые свойства языка С++, которые облегчают про­ектирование, реализацию, работу и сопровождение больших программ.

3.2. Программные модули в С++

Модули в С++ называются функциями и классами. Обычно программы на С++ пишутся путем объединения новых функций, которые пишет сам программист, с функциями, уже имеющимися в стандартной библиотеке С, и путем объединения новых классов, которые пишет сам программист, с классами, уже имеющимися в различных библиотеках классов. В этой главе мы сосредоточим внимание на функциях; классы мы будем детально обсуж­дать, начиная с главы 6.

Стандартная библиотека С обеспечивает широкий набор функций для выполнения типовых математических расчетов, операций со строками, с сим­волами, ввода-вывода, проверки ошибок и многих других полезных операций. Это облегчает работу программиста, поскольку эти функции обладают мно­гими из необходимых программисту свойств. Функции стандартной библи­отеки С являются частью среды программирования С++.

Хороший стиль программирования 3.1

Внимательно изучайте широкий набор функций в стандартной библиотеке ANSI С и классов в различных библиотеках классов.

Замечание по технике программирования 3.1

Избегайте повторного изобретения колеса. Если возможно, используйте стандартную библиотеку ANSI С вместо того, чтобы писать новые функции. Это сокращает затраты времени на создание программы.

Замечание по мобильности 3.1

Использование стандартной библиотеки ANSI С увеличивает мобильность программы.

Программист может написать функции, чтобы определить какие-то спе­цифические задачи, которые можно использовать в разных местах програм­мы. Эти функции иногда называют функциями, определенными пользовате­лем. Операторы, реализующие данную функцию, пишутся только один раз и скрыты от других функций.

Функция активизируется (т. e. начинает выполнять запроектированную для нее задачу) путем вызова функции. В вызове функции указывается ее имя и дается информация (в виде аргументов), необходимая вызываемой функции для ее работы. Это аналогично иерархической форме управления. Начальник (вызывающая функция или вызывающий оператор) просит под­чиненного (вызываемую функцию) выполнить задание и возвратить (т.е. сообщить) результаты после того, как задание выполнено. Функция-началь­ник не знает, как функция-подчиненный выполняет порученное ей задание. Подчиненный может вызвать другие подчиненные функции, причем началь-

180