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

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 знає про цю змінну і може до неї звертатися.

13.Глобальні змінні

Як ви вже знаєте, локальна змінна оголошується і відома тільки певній функції. На додаток до локальних змінних C++ дозволяє вашим програмам оголошувати глобальні змінні, які відомі впродовж всієї програми (глобально для всіх функцій). Щоб оголосити глобальну змінну, слід просто розмістити оголошення змінної в початок вашої програми поза якою-небудь функцією:

int some_global_variable; //Оголошення глобальної змінної

Void main(void)

{

// Тут повинні бути оператори програми

}

Наступна програма GLOBAL. CPP використовує глобальну змінну з ім'ям number. Кожна функція в програмі може використовувати (або змінювати) значення глобальної змінної. В цьому випадку кожна функція виводить поточне значення змінної, а потім збільшує, це значення на одиницю:

int number = 1001;

Void first_change(void)

{

cout << "значення number в first_change " << number << endl;

number++;

Void second_change(void)

{

cout << "значення number в second_cbange " << number

<< endl;

number++;

Void main(void)

{

cout << "значення number в main " << number << endl;

number++;

first_change() ;

second_change();

}

Як правило, слід уникати використовування у ваших програмах глобальних змінних. Оскільки будь-яка функція може змінити значення глобальної змінної, складно відстежити всі функції, які потенційно могли б змінити глобальну змінну. Натомість вашим програмам слід оголошувати змінну всередині main і потім передавати її (як параметр) у функції, яким вона потрібна. (Пам'ятайте, що в даній ситуації у стек поміщається тимчасова копія цієї змінної; оригінал не змінюється.)

Можуть бути ситуації, коли вам необхідно звернутися до глобальної змінної, чиє ім'я конфліктує з ім'ям локальної змінної. В таких випадках ваші програми можуть використовувати глобальний оператор дозволу (::), якщо ви хочете використовувати глобальну змінну. Наприклад, припустимо, що у вас є глобальна і локальна змінні з ім'ям number. Якщо ваша функція хоче використовувати локальну змінну number, вона просто звертається до цієї змінної, як показано нижче:

number << 1001; // Звернення до локальної зміної

З їншого боку, якщо ваша функція хоче звернутися до глобальної змінної, програма використовує глобальний оператор дозволу, як показано нижче:

::number = 2002; // Звернення до глобальної змінної

Наступна програма GLOBLOCA.CPP використовує глобальну змінну number. На додаток до цього функція show_numbers використовує локальну змінну з ім'ям number. Ця функція використовує оператор глобального дозволу для звернення до глобальної змінної:

int number = 1001; // Глобальна змінна