static int count = 200;
Локальные
Возможность использования статических локальных переменных важна для создания независимых функций, поскольку существуют такие типы функций, которые должны сохранять их значения между вызовами. Если бы статические переменные не были предусмотрены в C++, пришлось бы использовать вместо них глобальные, что открыло бы путь для всевозможных побочных эффектов.
Рассмотрим пример использования
/* Вычисляем текущее среднее значение от чисел, вводимых пользователем.
*/
#include
using namespace std;
int r_avg(int i);
int main()
{
int num;
do {
cout << "Введите числа (-1 означает выход): ";
cin >> num;
if(num != -1)
cout << "Текущее среднее равно: " << r_avg(num);
cout << '\n';
}while(num > -1);
return 0;
}
// Вычисляем текущее среднее.
int r_avg(int i)
{
static int sum=0, count=0;
sum = sum + i;
count++;
return sum / count;
}
Здесь обе локальные переменные
Если модификатор
Рассмотрим пример, который представляет собой переработанную версию программы (из предыдущего раздела), вычисляющей текущее среднее значение. Эта версия состоит из двух файлов и использует глобальные
//---------------------Первый файл---------------------
#include
using namespace std;
int r_avg(int i);
void reset();
int main()
{
int num;
do {
cout <<"Введите числа (-1 для выхода, -2 для сброса): ";
cin >> num;
if(num==-2) {
reset();
continue;
}
if(num != -1)
cout << "Среднее значение равно: " << r_avg(num);
cout << '\n';
}while(num != -1);
return 0;
}
//---------------------Второй файл---------------------
#include
static int sum=0, count=0;
int r_avg(int i)
{
sum = sum + i;
count++;
return sum / count;
}
void reset()
{
sum = 0;
count = 0;
}
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT