Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
25 / 25 / 5
Регистрация: 21.04.2011
Сообщений: 141
1

Обертка для list

29.09.2015, 21:26. Показов 1300. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть следующая иерархия классов:
C++
1
2
3
4
class A {};
class B : public A {};
class C : public A {};
class D : public C {};
Я хочу сделать обертку для std:list в котором могли храниться все эти классы и использовать его следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main() {
  List myList;
  A a;
  myList.Insert(a);
  B b;
myList.Insert(a);
  C c;
myList.Insert(c);
  D d;
myList.Insert(d);
 
for(auto it : myList)
{
//вызовать переопределенные функции (например вывод информации)
}
}
Подскажите как можно реализовать такое?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2015, 21:26
Ответы с готовыми решениями:

C++ обертка для dll C
Как написать C++ обертку для динамической библиотеки C?

Обертка Native для DBX32 (использование в 1С)
Добрый день. Прошу помощи. Есть библиотека DBX32.dll, которая предоставляет возможность работы с...

Обертка для класса TRegistry не работает как положено
Работая с классом TRegistry сталкиваюсь со следующей проблемой: Пишу вот такую обертку h файл ...

Обертка над boost::lexical_cast для работы с unsigned типами
Пару дней назад выяснилось, что boost::lexical_cast не удовлетворяет нескольким требованиям в...

1
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
29.09.2015, 21:39 2
1) std::list<std::unique_ptr<A> >list; плюс виртуальный деструктор в A. Придется потратиться на лишний указатель. Доступ к элементу списка несколько замедлится (так как не напрямую, а через умный указатель).
2) Наваять свой собственный лист, у которого A будет хранить и данные пользователя, и служебную информацию списка (указатели на следующий/предыдущий элементы). В качестве узлов списка можно будет использовать любого потомка A. Если потребуется хранить A отдельно от списка, эта самая служебная информация будет лежать мертвым грузом.
Оба решения не без своих недостатков.
1
29.09.2015, 21:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2015, 21:39
Помогаю со студенческими работами здесь

Обертка для ультралайта
здравствуйте кто-то встречал, как заставить работать с Си#?, спс

Обертка для PDO
Нашел на http://phpfaq.ru/pdo/pdo_wrapper простую обертку. Но не совсем понял, как она работает. ...

C++ обертка для OpenGL?
Здраствуйте. Почему для OpenGL до сих пор нету хорошей обертки для языка C++? Который одновременно...

Обертка для изображений
Подскажите, пожалуйста, как можно сделать подобную обертку для изображений (изображения будут...

Обертка для rsync
написал вот такую обертку для rsync в личных целях #! /usr/bin/python3 import subprocess...

Обёртка для колбеков
Доброго времени суток, уважаемое сообщество. Сразу к делу. Есть код который выглядит примерно...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru