Я пытаюсь создать абстрактный шаблон фабрики для нескольких абстрактных фабрик на C ++ и придумал это.
#define _CRTDBG_MAP_ALLOC
#include
#include
Он компилируется и работает нормально без утечек памяти (win32 crtdbg), но я не Не знаю, действительно ли это правильный способ создания абстрактного фабричного шаблона.
temp.Register("DA", (Creator*)new DerivedCreator);
Меня также интересует строка выше. Я не понимаю, зачем мне кастовать. Я не очень хорошо понимаю шаблоны, но предполагаю, что он должен работать нормально, учитывая, что и класс шаблона, и фактический класс являются производными.
Этот код действительно работает нормально, как показано выше, и даже удаляет без утечек памяти. Мне просто это не совсем удобно.
Мне не удалось найти никаких реальных примеров классов шаблонов, кроме этого из MaNGOS (вау-эмулятор) - https: //mangos.svn.sourceforge . net / svnroot / mangos / trunk / src / framework / Dynamic / ObjectRegistry.h
Но я не думаю, что могу использовать этот метод в моем проекте, потому что я планирую использовать библиотеки DLL в какой-то момент своего проекта, и он использует CRTP что противоречит моим требованиям к полиморфизму времени выполнения.
задан NtscCobalt 5 December 2010 в 05:18
поделиться