Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
hatter
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 140
#1

глобальные static-переменные и разбиение на файлы - C++

16.05.2011, 23:36. Просмотров 836. Ответов 3
Метки нет (Все метки)

Подскажите как связываются файлы при работе со static-переменными?
К примеру если я хочу чтобы у меня static переменные были в одном файле, а вся соль программки в другом. Как они связываются между собой для взаимодействия?
Ну вот на примере кода :
Это первый файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
 
int stat(int i);
void reset();
 
int main()
{
 setlocale(0,"");
  int num;
 
  do {
    cout << "введите число (-1 ВЫХОД, -2 СБРОС): ";
    cin >> num;
    if(num==-2) {
      reset();
      continue;
    }
    cout << "Среднее число: " << stat(num);
    cout << '\n';
  } while(num != -1);
 
  return 0;
}
Это второй - тут static-переменные
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static int sum=0, count=0;
 
int r_avg(int i)
{
  sum = sum + i;
 
  count++;
 
  return sum / count;
}
 
void reset()
{
  sum = 0;
  count = 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2011, 23:36     глобальные static-переменные и разбиение на файлы
Посмотрите здесь:

Глобальные static переменные - C++
main.h class Test { public: void test(); }; static int x; test.cpp

Глобальные переменные в функции - C++
Подскажите плиз, а можна ли глобальную переменную обявить как то в функции?

Глобальные переменные в хедер - C++
имеется data.h, в нем описана переменная int i. далее есть файл source.cpp include &quot;data.h&quot; int main() { i=10; return 0; ...

Динамические глобальные переменные - C++
При изучении С++ возникла проблема - потребовалось изменить два объекта одной функцией. Конечно, можно создать новый объект, являющийся...

Глобальные статические переменные - C++
Ребят, может мне кто-нибудь объяснить назначение глобальных статических переменных? Литература (в частности Шилдт) говорит о том, что к...

Используете ли вы глобальные переменные - C++
Добрый вечер, используете ли вы у себя в коде глобальные переменные между единицами трансляции и/или в конкретной? Моё мнение:...

глобальные переменные в модуле - C++
Нужно сохранить пару массивов и несколько переменных, но так чтобы их в основной программе видно не было, хочу сделать статик внутри...

Глобальные переменные и константы - C++
Есть проект, большой, с кучей классов и т.д. нужны глобальные переменные, и константы, доступ к которым должны иметь многие классы. Но они...

Глобальные переменные (ошибка) - C++
Разбирался в глобальных переменных, программа выдает ошибку... Что не так? #include &lt;iostream&gt; using namespace std; ...

Убрать глобальные переменные - C++
Помогите пожалуйста убрать глобальные переменные, прога работает на 100% #include &lt;cstring&gt; #include &lt;string&gt; #include &lt;fstream&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Onishare
30 / 30 / 5
Регистрация: 07.05.2011
Сообщений: 50
16.05.2011, 23:54     глобальные static-переменные и разбиение на файлы #2
Обрати внимание на модификатор extern.
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
17.05.2011, 00:05     глобальные static-переменные и разбиение на файлы #3
Употребление модификатора static в таком виде, как написано, является deprecated. D данном случае этот модификатор делает переменные видимыми только в том файле, где объявлены.
static можно убрать. Тогда это будут просто обычные глобальные переменные.

А в том файле, где требуется использовать глобальные переменные, надо их объявить:
C++
1
2
extern int sum;
extern int count;
hatter
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 140
17.05.2011, 00:46  [ТС]     глобальные static-переменные и разбиение на файлы #4
да согласен, так все будет работать.
значит просто в книге устаревший способ был описан в качестве примера, а я сразу не смекнул и пытался понять как именно такой случай можно использовать
Yandex
Объявления
17.05.2011, 00:46     глобальные static-переменные и разбиение на файлы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru