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

С++ для начинающих

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

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

12.02.2011, 10:53. Просмотров 1426. Ответов 3
Метки нет (Все метки)

Доброго времени суток, плиз помогите кто чем может ,имеется класс


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++
Добрый день уважаемые форумчане !!! Хочу уточнить для себя следующую деталь. Есть базовый класс Fada и производные от него Tasa ...

Указатели и преобразование типов - C++
Доброго времени суток уважаемые форумчанае! Возник вопрос, о котором стыдно даже спрашивать. Но в сторону гордость. Есть такой кусок: ...

Упорядочить массив и добавить указатели - C++
Помогите пожалуйста упорядочить элементы массива по возростанию их модулей ну вообщем вот полное задание Скласти програму, що виконує...

Двусвязный список (в конец двусвязного списка добавить другой список) - C++
здравствуйте, подскажите пожалуйста, как в конец двусвязного списка добавить другой список?

3
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 на Т.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2011, 14:57
Привет! Вот еще темы с ответами:

Добавить в список элемент после элемента с заданным инф.полем [Однонаправленный список] - C++
Вообщем есть: Функция создание списка Функции вывода на экран Функция добавление элемента с номером k А нужно ввести...

Как добавить в готовый проект указатели - C++
Часть первая #define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt;//no #include &lt;stdlib.h&gt;//no #include &lt;conio.h&gt; #include...

Указатели. Двусвязный список - C++
struct Link { string value; Link *prev; Link *succ; Link (const string &amp;v) :value(v), prev(0),succ(0){} }; Link...

Как переделать эту прогу в шаблон классов "Двусвязный список" произвольных элементов - C++
#include &lt;iostream.h&gt; #include &lt;stdlib.h&gt;2 #include &lt;conio.h&gt; using namespace std; struct Element { public: double...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
12.02.2011, 14:57
Ответ Создать тему
Опции темы

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