приватная статическая переменная-член класса, требуется разъяснение |
Здравствуйте, гость ( Вход | Регистрация )
приватная статическая переменная-член класса, требуется разъяснение |
Litkevich Yuriy |
4.5.2008, 18:42
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Есть такой код, у Шилдта:
Он работает, но я не понимаю такую строчку int shared::a;, ведь она приватная т.е. ее недолжно быть видно, как мы можем ее так объявить вне класса? |
|
|
ViGOur |
4.5.2008, 19:28
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
1. Статические члены - и функции и данные - должны быть где-то определены. В данно примере:
Объявление
Определение не обязательно данную переменную инициализировать так как она и так по умолчанию должна установиться в 0 (это по стандарту, если мне не изменяет память).2. Почему же ее не должно быть видно? Просто ключевым словом private мы говорим, что данная переменная закрыта для доступа от всех, даже для производных от данного класса класов. Другими словами, делаем так, что мы могли работать с данной переменной членом только в данном классе и не хотим, чтобы ее кто-то мог "испортить". Вот и все. ":) Сообщение отредактировал ViGOur - 4.5.2008, 19:31 |
|
|
Litkevich Yuriy |
4.5.2008, 19:44
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
т.е. мы можем определить ее в не класса, и больше ничго в не класса сней сделать будет нельзя?
|
|
|
ViGOur |
4.5.2008, 20:54
Сообщение
#4
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Угу, можно определять вне класса, только ничего сделать с ней нельзя будет в другом классе или функции не относящейся к этому классу.
Например: Читай книжки по С++, там это описывается достаточно хорошо.
Сообщение отредактировал ViGOur - 4.5.2008, 20:55 |
|
|
Litkevich Yuriy |
4.5.2008, 20:57
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
я думал что и определить приватную нельзя, но это видимо исключение только для статик? если бы она не была статик, можно ли было бы ее так определить?
|
|
|
ViGOur |
4.5.2008, 21:13
Сообщение
#6
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Так, нельзя. Так как к не статической переменной члену таким образом обращатся просто по определению нельзя.
Если она не константная, для константной переменной члена также требуется определение и прочее как у статической. Сообщение отредактировал ViGOur - 4.5.2008, 21:14 |
|
|
Litkevich Yuriy |
4.5.2008, 21:21
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
угу, понял.
|
|
|
Текстовая версия | Сейчас: 2.1.2025, 17:31 |