![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 95
|
![]()
Всем привет.
Ситуация заключается в следующем. У меня есть много различных классов. Но среди них есть такое, доступ к которому необходим из многих других классов. Отмечу, что экземпляр этого требуемого класса во всей программе один. До недавнего момента передавал каждому классу указатель на этот, назовем его глобальным, класс. Но недавно возник вопрос - а можно ли сделать объявление переменной этого глобального класса во всех остальных статическим, т.б. static, и не нужно будет каждый раз возиться с этими указателями. Еще раз отмечу, что экземпляр этого глобально класса один, и в main'e память под него выделяется динамически(т.е. это указатель на объект) Можно ли эту ситуацию разрешить подобным образом, или как-то боле проще, чем передавать в каждый класс этот пресловутый указатель? |
![]() |
![]() |
![]() |
#2 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2monolit111
man singleton
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
ну да, сделайте приватный конструктор(чтоб никто не создавал) и статический член типа класса и статический метод Get, который будет выдавать ссылку на статический обьект.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,368
|
![]() |
![]() |
![]() |
![]() |
#5 | ||
Пользователь
Регистрация: 14.09.2011
Сообщений: 95
|
![]() Цитата:
Цитата:
Да, и если сделать этот указательно класс открытым, то можно будет обойтись без функции-возвращающей оный? т.е. обращаться напрямую к этой переменной? Последний раз редактировалось monolit111; 15.08.2012 в 16:15. |
||
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 95
|
![]()
Спасибо всем, все вопросы решены.
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 14.09.2011
Сообщений: 95
|
![]()
Спасибо всем, все вопросы решены.
Последний раз редактировалось monolit111; 15.08.2012 в 17:39. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Использ. ZLIB для сжатия файла при передаче сервер-клиент | Pcrepair | Общие вопросы Delphi | 0 | 28.06.2011 19:15 |
static | Gen_r_questions | PHP | 7 | 05.04.2011 15:12 |
Вычислить:у=а*(в*в*в)*с,где а,в,с-двоичные числа.Для хранения числа использ.массив! | Таняпервокурсница | Помощь студентам | 4 | 04.06.2010 12:08 |
По-поводу Static | volnixx | PHP | 3 | 11.03.2009 12:04 |