Возможно, это было не очень ясно. Скажем, у меня есть char *a = "reg"
. Теперь я хочу написать функцию, которая при чтении значения a
создает экземпляр объекта определенного класса и называет его reg
.Как обрабатывать строковые переменные как действительный код?
Так, например, скажем, у меня есть class Register
и отдельная функция create(char *)
. Я хочу что-то вроде этого:
void create(char *s) //s == "reg"
{
//what goes here?
Register reg; // <- this should be the result
}
Он должен быть многоразовым:
void create(char *s) //s == "second"
{
//what goes here?
Register second; // <- this should be the result
}
Я надеюсь, что я сделал себе ясно. По сути, я хочу рассматривать значение в переменной как отдельное имя переменной. Возможно ли это в C/C++? Если нет, ничего подобного? Мое текущее решение состоит в хэш-строке, и хэш-таблица будет хранить соответствующий объект Register в этом месте, но я полагал, что это было довольно необязательно.
Спасибо!
Было бы удобно, если бы вы могли использовать эту строку в качестве ключа к какой-либо карте. Вы не согласны? – WhozCraig
Вы не можете сделать это на C++, так как он не поддерживает динамизм в необходимой степени. Какова фактическая проблема, которую вы пытаетесь решить? –
Почему? Почему вы позволили чему-то другому, кроме вас, программисту, определить, что ваши переменные _Called_? Вы выбираете свои var-имена, но как только код скомпилирован, имена исчезают (вроде) ... Я все равно не вижу смысла, но отвечаю: HashTable с 'hash',' char * 'и 'Регистрирующий' член звучит как разумная вещь ... –