Строка C ++ для имени класса

Я читаю из файла и на основе каждой строки создаю объект класса с тем же именем, что и первое слово строки, это потребовало бы от меня выполнения «оператора if» для проверки каждого слова, а затем создания объекта. Есть ли способ преобразовать строку в имя класса, чтобы я мог сделать что-то вроде этого:

string className = "someClass";
className obj;

c++
person Ahmed Waheed    schedule 21.05.2013    source источник
comment
И нет, ты не можешь этого сделать. Это могут делать языки с рефлексией (например, Objective-C в семействе языков C).   -  person    schedule 21.05.2013
comment
Попытка получить имя класса из файла, а затем создать экземпляры этого класса - признак плохого дизайна. Вам следует подумать об альтернативных, более чистых (и более ясных) способах выполнения действий, прежде чем вы начнете делать это вручную. Какую проблему вы на самом деле пытаетесь решить?   -  person Daniel Daranas    schedule 21.05.2013


Ответы (1)


Нет, вы не можете ...
Объявление / определения должны быть известны во время компиляции. Однако вы можете добиться полиморфизма во время выполнения, построив иерархию классов (и / или интерфейсов).

person bash.d    schedule 21.05.2013