![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| CTapMex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 20.2.2007 Репутация: нет Всего: нет |
Приветсвую.
Ситуация такая. есть три класса: СHeap - работа с кучей; CItems - лист элементов, память выделяется через CHeap; и некий головной класс CHead, он оперирует с CItems. Нужно, чтобы хэндл кучи был статическим внутри класса CHead |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
Ну и? Делаешь статическое поле в класса CHead. В чем состоит вопрос? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
CTapMex, возможно, тебе будет интересен паттерн Singleton.
|
|||
|
||||
| CTapMex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 20.2.2007 Репутация: нет Всего: нет |
наверное я не совсем корректно сформулировал или я плохо знаю мат часть нужно чтобы эта переменная была своя для каждого CHead , но в тоже время была доступна и другим классам используемым в нем хотя я наверное реально туплю. надо в классе CHeap определить метод для возврата хэндла и вызывать его , когда он нужен. Или этот вариант тоже нето? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
Хочется понять ситуацию. У каждого CHead есть свой Heap? Или же Heap общий для всех объектов типа CHead. Если же Heap общий, то CHead не должен заниматься раздачей чужих хэндлов. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| CTapMex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 20.2.2007 Репутация: нет Всего: нет |
объясню подробнее, глядишь и сам пойму. в диалогах таких на форуме (даже с самим собой) часто нахожу решение
пытаюсь переписать чужой код, вот и встал исходные данные. есть статическая переменная хэндл кучи есть набор функций (не класс), небольшой, для работы с кучей есть класс CItems, он выделяет память через эти функции работы с кучей. есть класс CHead, он для себя выделяет память через функции для кучи, плюс использует класс CItems. хэндл кучи общий для всех экземпляров классов я же, хочу сделать так , чтобы каждому CHead соответствовал свой хэндл кучи, соответсвенно все классы , которые он вызывает должны использовать этот же хэндл. |
|||
|
||||
| jonie |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
Сам класс CHead может быть шаблонным, и требовать указания как раз методов на allocate\deallocate как параметров шаблона... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
| CTapMex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 20.2.2007 Репутация: нет Всего: нет |
спасибо
|
|||
|
||||
| CTapMex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 20.2.2007 Репутация: нет Всего: нет |
остановился на следующем варианте
функции для работы с кучей, плюс хендл кучи объединяем в один класс CHeap CHead создает себе экземпляр CHeap и передает его в CItems как параметр при создании |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |