![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
Подскажите как это лучше сделать. До этого я пользовался глобальными переменными, но их количество быстро растет и запутывает код. Есть ли способ лучше?
-------------------- Never again... |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Я использовал класс CDocument когда мне надо было хранить данные, и получать доступ несколькими классами..
Это для MFC --------------------
|
|||
|
||||
| Borisff2003 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 198 Регистрация: 26.2.2004 Где: г. Уфа Репутация: 1 Всего: 1 |
Вообщето все зависит от задачи. Подробнее плз.
--------------------
Лень, двигатель прогресса |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Nuzur
Можно организовать диспетчер сообщений. Объекты кладут сообщения(события и т.п.) в какую-нить очередь. Диспетчер - распределяет сообщения, кому какое сообщение предназначается. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
объединяйте переменные в структуры по определенным признаком, будет по проще можно создавать свой клас данных или как было замечено (СDOCUMENT) и в каждый клас передавать указатель на класс данных.... и как правильно сказали - все зависит от задачи и от порядка взаимодействия классов.... -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
Например есть класс который занимаеться мат операциями с содержимым файла.
Другой класс занимаеться всяческой "анимацтонной работой". Третий выполняет вспомогательные функции между ними. И они все между собой взаимодействуют, передают имена следующих файлов, нрмера ячеек, у и всякую фигню. У меня уже около 20-ти глобальных....и я боюсь что сегодня их станет 30-ть В структуры обдинять дело неблагодарное, поскольку "они" разные и для разных функций. А что там с диспетчером, можно попдробней, и особенно на том моменте как ЭТО ДОЛЖНО помочь, я если честно не совсем понимаю Добавлено @ 18:16 Да еще, обьединять эти 3-ри класса нельзя, поскольку так или иначе они входят, точнее используються, другими, и если их начать обьединять то будет 1-н модуль. Это следствие не неправильной планировки, а специфики решаемой задачи -------------------- Never again... |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
А что-нить общее их объяденяет? Я имею ввиду тип сообщениями и т.п. Самое простое это сделать абстрактный базовый класс. В котором будет функция типа virtual BOOL ProcessMessage(const cMessage&) = 0; Если по сложнее, то можно организовать класс типа CUniversalMessage. Это будет очень мощный класс. В который можно будет добавлять поля. Короче динамическое сообщение, в которое можно будет "на ходу" добавлять поля с данными. Естественнго реализация такого сообщения и диспетчера займет много времени. |
|||
|
||||
| bel_nikita |
|
||||||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Делать было не чего, время было темное.
Пример, что такое диспетчер сообщений. Такой простенький и юзающий STL. Наврядли подойдет. Т.к. классы используют один тип сообщения. Хотя сообщение можно настроить. Передавать поинтеры например. TSTBase.h
TSTMessage.h
TSTObject.h
TSTObject.cpp
TSTDispatch.h
TSTDispatch.cpp
TSTTimer.h
TSTTimer.cpp
А вот его использование: MAIN.CPP
Этот простенький примерчик посылает сообщения другим объектам по таймеру. Т.е. один объект посылает сообщение другому объекту. Этот другой принимает сообщение через определенное время. В общем реальный диспетчер З.Ы.: Народ! По-критикуйте плиз |
||||||||||||||||||
|
|||||||||||||||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |