Форум программистов, компьютерный форум CyberForum.ru

Добавить в список указатели на обьекты произвольных типов - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
gremlin87
Сообщений: n/a
12.02.2011, 10:53     Добавить в список указатели на обьекты произвольных типов #1
Доброго времени суток, плиз помогите кто чем может ,имеется класс


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class TGarbageCollector
   {
   public:
 
      template <class T>
      T* Add(T *g)
              {
         _garbage.insert(g);
         return g;
      }
 
      ~TGarbageCollector()
      {
         while (!_garbage.empty())
         {
            delete *_garbage.begin();
            _garbage.erase(_garbage.begin());
         }
      }
 
   private:
 
      std::set<TObject *> _garbage;
   };

необходимо модифицировать его таким образом чтобы добавлять в список указатели на обьекты произвольных типов а не только унаследованых от TObject при этом остальной исходный код меняться не должен.
Пробовал заменить обьявление списка на std::set<void *> _garbage; но дальше как то не пошло пробовал ещё много всякой дряни но чётоникак. Заранее благодарю за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2011, 10:53     Добавить в список указатели на обьекты произвольных типов
Посмотрите здесь:

отсортировать двусвязный список через указатели C++
C++ Указатели и преобразование типов
C++ Как переделать эту прогу в шаблон классов "Двусвязный список" произвольных элементов
C++ список (в программе обнуляются указатели на структуры)
Упорядочить массив и добавить указатели C++
Необходимо хранить список типов, и пользоваться ими, например, вызывать конструкторы C++
C++ Контейнеры, способные хранить данные произвольных (различных) типов
C++ Указатели разных типов
Как добавить элемент в список? C++
Указатели, связной список (Linked List) и динамическое выделение памяти C++
Плохо ли делать зависящие друга от друга классы, в которых присутствуют указатели на обьекты других классов? C++
C++ Как добавить в готовый проект указатели

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Airhand
Сообщений: n/a
12.02.2011, 13:51     Добавить в список указатели на обьекты произвольных типов #2
Попробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    template <class T> class TGarbageCollector
   {
   public:
      T* Add(T *g)
      {
         _garbage.insert(g);
         return g;
      }
 
      ~TGarbageCollector()
      {
         while (!_garbage.empty())
         {
            delete *_garbage.begin();
            _garbage.erase(_garbage.begin());
         }
      }
 
   private:
 
      std::set<T *> _garbage;
   };
gremlin87
Сообщений: n/a
12.02.2011, 13:59     Добавить в список указатели на обьекты произвольных типов #3
увы такой вариант не канаед, в таком случае придётся создавать для каждого типа указателя свой образец класса TGarbageCollector, тем более придётся менять код использующий этот класс а по условию задачи этого делать нельзя
Airhand
Сообщений: n/a
12.02.2011, 14:57     Добавить в список указатели на обьекты произвольных типов #4
Я не совсем понял условие задачи, но по-моему, мой код неверно используется. Попробуйте в своём примере заменить TObject на Т.
Yandex
Объявления
12.02.2011, 14:57     Добавить в список указатели на обьекты произвольных типов
Ответ Создать тему
Опции темы

Текущее время: 03:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru