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

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

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

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

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

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

Статические переменные - C++
Здравствуйте, искал инфу в интернете про статические переменные. Люди говорят разные вещи про разные типы статических переменных. Я...

Статические переменные - C++
В чем польза использовать статические переменные вместо обыкновенных публичных в определении класса. К примеру: class record { ...

статические переменные - C++
class A { public: A(){} void f() { A::_a = this; } private: static A *_a;

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

Рекурсия и статические переменные. - C++
Что - то я запутался. Пытаюсь написать деструктор для своего бинарного дерева поиска, но мне не понятно поведение статических переменных. У...

В каком сегменте хранятся статические переменные? - C++
В каком сегменте хранятся статические переменные?

Статические функции - C++
Начинаю изучать С++, написал код, но не хочет работать, подскажите, в чем может быть ошибка. class Sequence { public: Sequence(int...

статические функции - C++
Всем здрасьте. У меня тут впоросик на счёт static функций. я знаю как работает static с переменной. Но как он работает с функциями? к...

Статические функции - C++
Добрый день. Пример из Лафорте, ООП: // statfunc.cpp // Статические функции и ID объектов #include <iostream> using...

Статические члены и функции - C++
Что-то я не могу понять что я забыли и чяднт что код не компилируется. #include <iostream> #include <string> using namespace std; ...

Статические и виртуальные функции - C++
Составить программу с одним родительским классом и двумя потомками. Все поля должны быть закрытыми. Потомки должны содержать виртуальные...

Статические функции-члены - хорошо или плохо? - C++
Всем привет. Приведу пример такой архитектуры. Есть базовый интерфейс. От него наследуются много конкретных. И есть фабрика,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
16.02.2013, 18:05     Статические переменные и функции #2
почитай про область видимости.
всё что объявлено как static имеет значение до конца выполнения программы
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 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     Статические переменные и функции
Ответ Создать тему
Опции темы

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