|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.05.2015, 11:01 | #1 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
Применение статических переменных
Всем приятного дня !!!
Подскажите пожалуйста , где и с какой целью применяются статические переменные. В учебнике сказанно что их можно применять в самом классе к примеру для подсчета обьектов. А исче где-то можно применять кроме классов ? |
08.05.2015, 13:29 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Статические переменные, это переменные, которых не нужно создавать в куче, как объекты класса. Они в этом плане могут считаться глобальными. Т.е. практически везде, где применяются глобальные переменные можно применять и статические, с отличием небольшим: Статические подчиняются законам ООП, а глобальные - законам линейного программирования. Вот пожалуй и вся разница. Думаю что не ошибаюсь, но если спецы местные поправят меня буду только рад )
I'm learning to live...
|
08.05.2015, 14:10 | #3 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
статические перем. применяют только совместно с классами ?
|
08.05.2015, 17:54 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Нет. Они спокойно могут хранить состояние между вызовами функции. Начните же читать документацию https://msdn.microsoft.com/ru-ru/library/s1sb61xd.aspx
|
08.05.2015, 18:11 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну по идее да. Статика как бы говорит о том что эта переменная, а точнее свойство может быть задействовано даже если объекта не создано, простым обращением к имени типа класса. Потому можно провести параллель такую с глобалками. Отличие только в том что эти переменные упакованы в класс.
Вот если посмотришь на самую простую программу на C# (проведешь параллель) то обратишь внимание что метод main() статический. Т.е. он должен вызываться как главный стартующий, поэтому его нужно пометить как статику, чтоб не заставлять создавать экземпляр класса. Поскольку это стартующий метод программы в Шарпе, то создавать его нельзя, вот и обьявляют такие штуки статическими. И переменные кстати, что в такой программе используются в качестве полей тоже обьявляют статикой, поскольку они должны быть этому Майну доступны. Вот пример: http://www.programmersforum.ru/showthread.php?t=103104 Глобальные переменные обьявляются статикой чтоб Майн их видел, потому что создать обьект такого класса не научились.
I'm learning to live...
|
08.05.2015, 23:08 | #6 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
о статических членах | SAMOUCHKA | Общие вопросы C/C++ | 5 | 26.05.2014 16:36 |
Редактор статических отчетов. | _Lamer_ | WPF, UWP, WinRT, XAML | 0 | 17.07.2012 11:59 |
перезагрузка статических операторов | AndreyBS | Общие вопросы C/C++ | 10 | 12.05.2011 18:35 |
сортировка статических структур | mego4el | Помощь студентам | 1 | 22.02.2011 23:17 |
Как вместо статических локальных переменных использовать переменные объявленные в namespace? | Oleg_SK | Общие вопросы C/C++ | 25 | 05.07.2010 18:46 |