C++ Что такое "статическая переменная"?

программирование C++

Объясните, пожалуйста и приведите пример, а то в книге вообще не понятно, что автор хотел сказать.
Спасибо.
Ответы:
Переменная имеет отношение только к самому классу (как типу)
Она общая для всех экземпляров данного класса . . .
это как в дельфе const param=x
или, вне класса, переменная с областью видимости уровня приложения (существует, в отличие от автоматической все время работы программы)
В C++ это переменная, единая для всех объектов данного класса.
Пример: http://alenacpp.blogspot.com/2008/12/blog-post.html
Небольшой пример:
for(int i = 0; i<10; i++){
 static int j;
 j++;
 cout<<j<<' ';
}
Мы объявили статическую переменную j. Если убрать слово static, то j бы заного инициализировалась при каждой новой итерации (кстати, попробуй это сделать - увидишь что получится :) ).. А статическая переменная инициализируется всего лишь единожды (в определенном участке памяти).
В классах - это что-то типа глобальной переменной. Она (переменная) принадлежит всему классу, а не отдельным его объектам.
например
re: static int c; // а это статическая переменная. Она принадлежит классу целиком, однако "из вне" эту переменную нельзя изменить
Можно сказать: статическая переменная - это глобальная, но с ограничениями области видимости.
все просто -- это тоже, что и глобальная, но "прикреплена" к конкретному классу -- со всеми вытекающими последствиями -- например: нужно
особенно нежелательно (неприемлимо) использование ввиду неопределенности порядка пребора исходных (cpp) файлов.
ой... я думал вопрос про статическую переменную класса (=
agronom, да? :)
Просто, когда я проверял свое утверждение, то делал так.
someclass ex;
ex.c = 1;
При этом компилятор ругался. Спасибо, буду знать :)
а, это вы наверно струсатрупа взяли.
Если переменная объявлена как static,то компилятор выделяет ей как и глобальной переменной постоянное место в памяти.Значение этой переменной сохраняется между вызовами блоков программы,в которых она объявлена(нестатические локальные переменные между вызовами ф-ций уничтожаются).
Отличие от глобальной в том,что она доступна только в своём блоке кода(ф-ции или файле).
Прменяется,например,при вызовах COLLBACK ф-ций ,которые вызываются при поступлении в приложение сообщений.При этом значения переменных объявленных static,сохраняются.Все другие переменные необходимо заново инициализировать.
Если объявить переменную-член класса как статическую,то компилятор создаст для всех объектов один щбщий экземпляр этой пере менной.Эта переменная не будет копироваться  для всх объектов данного класса,как это происходит для нестатических членов.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.