Войти
ПрограммированиеФорумСеть

С++ и сеть (2 стр)

Страницы: 1 2
#15
2:29, 5 окт 2012

cr3a70r
>> ... создать список на основе std::vector ... Но вспомнилось что создавать вектор на основе виртуального класса нельзя
Очень даже можно. Разумеется, класть в список экземпляры базового класса ICommand по меньшей бесполезно (не будет работать полиморфизм) или вообще нельзя (если он абстрактен). Однако, кто же запретит положить в список указатели на экземпляры различных конкретных типов команд, приведенные к базовому типу ICommand*? Соответственно, цель будет достигнута с помощью

std::list<ICommand*> somelist;

Впрочем, это очень аккуратно надо за указателями следить, поэтому лучше сразу использовать умные указатели, итого

std::list<std::shared_ptr<ICommand>> somelist;
#16
15:51, 4 ноя 2012

Создаешь интерфейс ICommand от него создаешь команды. Команды кладутся в Класс очереди который содержит например std::queue, либо std::list . Функции Pop и Push внутри используют синхронизацию на мьютексах (пр.). В контейнерах хранишь указатели на объекты которые в динамике. Шаред-поинты хорошо использовать когда "сложный" код, иначе обычные ссылки. Хотя шареды тож не плохо).
  Вот и все )

Страницы: 1 2
ПрограммированиеФорумСеть

Тема в архиве.