Возможный дубликат:
Есть ли способ создания объектов из строки, содержащей их имя класса?
Я написал шаблонный класс Vbo для работы с объектами буфера вершин в opengl. Я пишу для нескольких платформ на C ++.
Я хотел бы установить тип из файла конфигурации во время выполнения.
например
<vbo type="bump_vt" ... />
Vbo* pVbo = new Vbo<bump_vt>(...);
Есть ли способ, которым я могу сделать это без большого блока if else, например
Vbo* pVbo;
if( sType.compareTo("bump_vt") == 0 )
pVbo = new Vbo<bump_vt>(...);
else if
...
Спасибо
C ++ не позволяет этого, потому что типы разрешаются во время компиляции.
Но вы можете использовать std :: map для упрощения процесса.
Других решений пока нет …