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

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

Войти
Регистрация
Восстановить пароль
 
RussDragon
12 / 12 / 1
Регистрация: 08.04.2012
Сообщений: 81
#1

shared_ptr с потомками - C++

24.01.2014, 21:03. Просмотров 566. Ответов 2
Метки нет (Все метки)

Добрый вечер, сейчас столкнулся с задачей хранить большие объемы динамически-выделенной памяти. Обычный массив Base* list[100] не подходит, т.к. ограничен размер. Структура в виде дерева тоже —*проходиться по всей иерархии достаточно долго. Остановился на vector<shared_ptr<Base*>> list.

Проблема в том, что нужно как-то изменять значения (то, на что указывают) этих самых shared_ptr'ов во время выполнения программы на объекты производных классов. Гуглил такую проблему, ничего толком не нашел.

Каким образом можно реализовать?

Благодарю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2014, 21:03     shared_ptr с потомками
Посмотрите здесь:

Связь между потомками класса - C++
Здравствуйте! У меня проблема: имеется класс, и у него есть 2 класса-потомки. Мне нужно с экземпляра первого класса-потомка получить...

Дерево с двумя потомками с данными в конечных вершинах - C++
Народ, не могу вкурить деревья в С++ прям никак, прошу помочь с заданием... дерево с двумя потомками с данными в конечных вершинах....

Функция: удаление узла дерева со всеми потомками - C++
подскажите код функции которая удаляет элемент дерева со всеми его потомками NODE *SEARCH(char *key, NODE *root) { NODE...

Реализация shared_ptr - C++
Добрый день. Реализовал shared_ptr(), но если больше 2 перемен он не правильно работает. Что я не правильно делаю и как правильно ...

shared_ptr валится - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; #include &quot;boost/shared_ptr.hpp&quot; class One { public: ...

Weak_ptr и shared_ptr - C++
Спасибо что зашли в эту тему и уделили мне время. Недавно увидел статью (не реклама) http://habrahabr.ru/post/191018/ Есть такой...

This для shared_ptr - C++
Как создать объект shared_ptr, в котором будет лежать this?

Использование shared_ptr - C++
std::shared_ptr&lt;int&gt; sp(new int); sp = 12; std::cout &lt;&lt; sp; Расшареному указателю нельзя присваивать стандартные...

Наследование от shared_ptr - C++
Добрый день. Подскажите вот какую вещь. Сделал удобный для себя класс для ведения логов. В нем переопределил operator&lt;&lt; след....

shared_ptr и vector - C++
почему в vector нельзя засунуть shared_ptr ? ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
24.01.2014, 21:15     shared_ptr с потомками #2
А в чем, собственно, проблема?
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
25
26
27
28
#include <iostream>
#include <memory>
#include <vector>
 
struct A {
    virtual void f() {
        std::cout << "A::f()" << std::endl;
    }
};
 
struct B: public A {
    virtual void f() {
        std::cout << "B::f()" << std::endl;
    }
};
 
int main()
{
    std::vector<std::shared_ptr<A>> v;
 
    v.push_back(std::make_shared<A>());
 
    v.front()->f();
 
    v[0] = std::make_shared<B>();
 
    v.front()->f();
}
RussDragon
12 / 12 / 1
Регистрация: 08.04.2012
Сообщений: 81
24.01.2014, 21:21  [ТС]     shared_ptr с потомками #3
Хм, неожиданно. Спасибо!
Ответ Создать тему
Опции темы

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