Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание программ на С++.doc
Скачиваний:
15
Добавлен:
29.09.2019
Размер:
1.59 Mб
Скачать

Что вам необходимо знать

Библиотека этапа выполнения C++ предоставляет мощный набор функций, которые вы можете использовать в ваших программах. Не жалейте времени, чтобы изучить документацию по библиотеке этапа выполнения, поставляемой с вашим компилятором. Выясните смысл функций, имеющихся в библиотеке этапа выполнения. Преимущество этих функций состоит в том, что вы избавляетесь от значительного объема программирования. В уроке 12 вы научитесь обращаться с локальными переменными и областью видимости (участок вашей программы, где известно имя переменной). Прежде чем перейти к уроку 12, убедитесь, что вы освоили следующие основные концепции:

    1. Библиотека этапа выполнения представляет собой набор функций, обеспечиваемых компилятором для ваших программ.

    2. Для использования функции из библиотеки этапа выполнения вы должны указать ее прототип.

    3. Большинство компиляторов C++ предоставляют заголовочные файлы, которые содержат корректные прототипы для каждой библиотечной функции.

    4. В дополнение к библиотеке этапа выполнения многие компиляторы C++ предоставляют функции API (интерфейс прикладных программ) для выполнения определенных задач, например программирования графики или мультимедиа.

Урок 12. Локальные переменные и область видимости

Как вы уже знаете, функции позволяют разделить программу на небольшие легко управляемые части. Все функции, используемые вами до настоящего момента, были совершенно просты. Как только вашим функциям потребуется выполнить более сложную работу, они должны будут использовать переменные для реализации своих задач. Переменные, объявляемые внутри функции, называются локальными переменными. Их значения и даже сам факт, что локальные переменные существуют, известны только данной функции, Другими словами, если вы объявляете локальную переменную с именем salary в функции payroll, то другие функции не имеют доступа к значению переменной salary. Фактически, другие функции не имеют никакого представления о том, что переменнаяsalary существует. Этот урок рассматривает область видимости переменной, или участок внутри вашей программы, в котором переменная известна. К концу этого урока вы освоите следующие основные концепции:

• Вы объявляете локальные переменные внутри функции точно так же, как и внутри main: указывая тип и имя переменной.

• Имена переменных, используемых внутри функций, должны быть уникальными только по отношению к данной функции.

• Область видимости переменной определяет участок программы, где переменная известна и доступна.

• Глобальные переменные в отличие от локальных переменных известны на протяжении всей программы и доступны внутри всех функций.

• Оператор глобальной области видимости C++ (::) позволяет вам управлять областью видимости переменной.

Объявление локальных переменных внутри функции достаточно просто. Фактически вы уже это делали каждый раз, когда объявляли переменные внутри main.

Объявление локальных переменных

Локальная переменная представляет собой переменную, определенную внутри функции. Такая переменная называется локальной, потому что ее известность ограничена данной функцией. Вы объявляете локальные переменные в начале функции после открывающей фигурной скобки:

void some_function(void)

{     int count;     float result;  }

Следующая программа USEBEEPS.CPP использует функцию sound_speaker, которая заставляет играть встроенный компьютерный динамик столько раз, сколько указано параметром beeps. Внутри функции so und_speaker локальная переменная counter хранит количество звуков, издаваемых динамиком:

#include <iostream.h>

void sound_beeps(int beeps)

{     for (int counter = 1; counter <= beeps; counter++) cout << '\a';  }

void main(void)

{     sound_beeps(2);     sound_beeps(3);  }

Как видите, функция sound_beeps объявляет переменную counter сразу же после открывающей фигурной скобки. Поскольку counter определяется внутри функции sound_beeps, эта переменная является локальной по отношению к sound_beeps, и это означает, что только sound_beeps знает об этой переменной и может к ней обращаться.