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

Гибкая архитектура и порождающие паттерны - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Умножение матриц http://www.cyberforum.ru/cpp-beginners/thread964424.html
Я юзаю Qt, но пишу сюда т.к. он никак не влияет на код (почти) У меня есть две матрицы A и B (размерность обеих 800х800). Чтобы получить матрицу AB я делаю: for(int i = 0; i < 800; i++){ ...
C++ Среднее значение Нужно посчитать среднее значение всех элементов стека. Но результат всегда ноль. Помогите пожалуйста! #include <stdio.h> #include <conio.h> #include <iostream.h> #include<stdlib.h>... http://www.cyberforum.ru/cpp-beginners/thread964422.html
C++ Не работает одна программа
Вот программа. Нужно, чтобы она выводила 1. Три числа с длинной строки 6 2. Дви числа с длинной строки 6 и точностью после запятой 3 3. Три символа с длинной строки 5 4. Три строчки с длинной...
Не получается "чистый ноль" C++
Доброго времени суток. Довольно банальная проблема, но заставила меня сильно попотеть! for(double x = -0.5; x <= 0.5; x += 0.01) { cout << x << endl; } При выводе, когда время доходит...
C++ Передача вектора из класса в класс? http://www.cyberforum.ru/cpp-beginners/thread964394.html
Доброго времени суток! У меня возникла проблема в очень простой программе. Я передаю функции из класса board.cpp в класс test.cpp. У меня выдает g++ следующую ошибку: /tmp/cc7v3lIw.o: In function...
C++ Вывод матрицы на экран //* С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического. //* Разрешается при этом использовать только один оператор... подробнее

Показать сообщение отдельно
gray_fox
What a waste!
1551 / 1256 / 74
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
29.09.2013, 14:43
Melg, create_filter - обычная фабрика, конструктор по умолчанию. set_property примерно так
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
29
30
31
32
class FilterInterface {
 
   using property_map = std::map<std::string, boost::any>;
 
public:
   virtual void filter() const = 0;
 
   void set_property(std::string const& id, boost::any const& value) const {
      properties.insert(std::make_pair(id, value));
   }
 
   template<typename T>
   T get_property(std::string const& id) const {
      property_map::const_iterator it = properties.find(id);
      if (it == properties.end()) {
         throw std::out_of_range("no such property");
      }
      return boost::any_cast<T>(it->second);
   }
 
private:
   property_map properties;
};
 
class FileTypeFilter : public FilterInterface {
 
public:
   virtual void filter() const {
      std::string extension = get_property<std::string>("fileExtension");
      // ...
   }
};
Добавлено через 1 час 0 минут

Не по теме:

Кстати, вообще нужно ли подобное? Можно отвязаться от конкретного типа фильтра в коде, но пользователь всё равно ведь должен знать, какой фильтр создать и как его проинициализировать - т.е. тот же тип фильтра по сути.

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