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

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

Войти
Регистрация
Восстановить пароль
 
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
#1

Статические переменные и функции - C++

16.02.2013, 17:51. Просмотров 511. Ответов 3
Метки нет (Все метки)

С какой целью применяются статические фуекции и переменные? Что они дают?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2013, 17:51     Статические переменные и функции
Посмотрите здесь:

C++ Рекурсия и статические переменные.
Статические переменные C++
C++ Статические члены и функции
Глобальные статические переменные C++
В каком сегменте хранятся статические переменные? C++
C++ статические переменные
Статические функции C++
статические функции C++
Статические и виртуальные функции C++
C++ Статические функции
Статические функции-члены - хорошо или плохо? C++
Статические переменные C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
16.02.2013, 18:05     Статические переменные и функции #2
почитай про область видимости.
всё что объявлено как static имеет значение до конца выполнения программы
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
16.02.2013, 18:15     Статические переменные и функции #3
статические переменные как глобальные
находятся в глобальной памяти и не удаляются после завершения вызова функции.
но как локальные не могут использоваться где-либо вне области видимости функции.

Всё же следует отличать понятия "static переменные в функции" от
"static члены класса" и "static методы класса"
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
16.02.2013, 18:19     Статические переменные и функции #4
Статические переменные глобальны: данное конкретное имя связывается с одной-единственной переменной в пределах единицы компиляции (файла с исходниками). Получаем глобальную переменную, но которую можно объявить локально в классе или функции (урезав соответствующим образом её область видимости).

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

Глобальные статические переменные и функции имеют so called internal linkage — они видимы только внутри единицы компиляции, где объявлены. В других файлах могут быть одноимённые глобальные переменные, функции и т. п., но они не будут пересекаться с объявленными статически в данном файле.

В Си++ использование static для глобально объявляемых переменных/констант/функций с целью ограничить их область видимости считается плохим тоном, так как бедное ключевое слово слишком перегружено. Рекомендуется оборачивать нужные вещи в неймспейс без имени, эффект тот же.
Yandex
Объявления
16.02.2013, 18:19     Статические переменные и функции
Ответ Создать тему
Опции темы

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