Другие языки программирования и технологии

Статичная функция внутри класса. какие данные будут доступны всем образцам класса?

если мы создаем статичную ПЕРЕМЕННУЮ внутри класса
то она доступна (едина) всем образцам (протатипам) класса
и изменение в одном обрзаце этой переменной - затронит и все остальные.

а что касается статичной функции внутри класса, как такое обявление затронит работу нескольких образцов?

переменные (не статичные) внутри статичной функции будут ли едины для всех образцов класса

============
ЗЫ
хочу внутри своего класса создать поток
для этого нужна статичная (конкретно локализованная в памяти) переменная управления потоком

и у меня будет 2а экземпляра класса, хочу знать какая область памяти будет общей...

спасибо :)
Андрей ...
Андрей ...
569
Полагаю, речь идет о С++?

> если мы создаем статичную ПЕРЕМЕННУЮ внутри класса
то она доступна (едина) всем образцам (протатипам) класса
и изменение в одном обрзаце этой переменной - затронит и все остальные.

Какая-то странная терминология. Обычно говорят "класс", "поля", "данные класса", "методы" или "функции-члены", "экземпляры класса" или просто "объекты класса".

Да, если объявить поле статическим, то оно будет общим для всех экземпляров класса и в памяти будет единственным.

> а что касается статичной функции внутри класса, как такое обявление затронит работу нескольких образцов?

Ну если поведение объектов меняется при изменении статичных полей, то как-то затронет. Из статичного метода нет доступа к полям класса, если они не статичные. Причем статичные метод можно вызвать даже не имея ни одного созданного экземпляра класса:

MyClass::my_static_method();

> переменные (не статичные) внутри статичной функции будут ли едины для всех образцов класса
Нет. С чего бы это вдруг им быть едиными?
Кирилл Демидов
Кирилл Демидов
55 814
Лучший ответ
Андрей ... "Какая-то странная терминология."
> неграмотный я, самоучка)

Пожалуйста посоветуйте литературу из разряда
"Каждый программист C++ обязан прочитать от начала до конца"

ам ну и за одно пару советов - какие методы изучения английского языка самые эффективыне? из вашего опыта.
Странный вопрос. Вообще такие вещи могут зависеть от языка программирования, но на тех, которые знаю я:

1. Статическая переменная хранится в единственном экземпляре, то есть изменение этой переменной в одном объекте приведет к изменению в другом. (По факту все объекты содержат просто ссылку на одну переменную) .

2. А что будет со статической функцией? Просто ее можно будет использовать не создавая экземпляр класса. например в Java функция main - static.
Ты не сможешь из внешнего объекта обратиться к переменной функции. Как правило переменная объявленная внутри блока кода (в нашем случае функции) уничтожается по выходу из функции.

Статическое поле будет общим для двух экземпляров.