Как мы можем создать экземпляр в C ++ по имени типа строки? - PullRequest
0 голосов
/ 06 сентября 2011

Предположим, у нас есть только строка

string typename = "int"

Как мы можем получить экземпляр по этому типу.

Ответы [ 3 ]

4 голосов
/ 06 сентября 2011

В C ++ вы не можете иметь тип только из string (или массива символов) Тип должен быть объявлен во время компиляции .

[P.S. typename - это ключевое слово в C ++, поэтому его нельзя использовать как переменную.]

2 голосов
/ 06 сентября 2011

Это не поддерживается напрямую в C ++.Вы можете использовать Abstract Factory Pattern (см. Статью в Википедии ) и сопоставить имена классов с фабрикой, чтобы создать их.

1 голос
/ 06 сентября 2011

Вы не можете сделать это напрямую в C ++.

Обычный способ сделать это - зарегистрировать все возможные типы на некоторой фабрике, которая будет создавать данные в куче.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...