Комментарии 9
Сделайте кат повыше, пожалуйста.
+8
В TemplateFactory после разрушения объекта будет утечка памяти, создаётся объект, вставляется в Map указатель… и не освобождается.
0
Скажите уже кто-нибудь Qt-программистам, что «ружья кирпичом не чистят».
0
Прошу прощения?
0
Всё, что написал автор поста, используя связку boost::shared_ptr + boost::factory:
Использование:
typedef boost::function<boost::shared_ptr<Test>(std::string)> factory_t;
std::map<std::string, factory_t> factory = boost::assign::map_list_of
("test", factory_t(boost::factory<boost::shared_ptr<Test> >()))
("testchild", factory_t(boost::factory<boost::shared_ptr<TestChild> >()))
;
Использование:
boost::shared_ptr<Test> a = factory["test"]("A");
a->func();
boost::shared_ptr<Test> b = factory["testchild"]("B");
b->func();
0
Я бы не сказал, что это именно в хаб Qt Software годится (как по мне, так тут С++, напичканный парой qtcore классов), но вполне подойдет.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Аргументированная фабрика