Я создал универсальный массивный шаблон для создания массивов разных типов. Теперь мне нужно получить пользовательский ввод из меню о том, какой тип массива они строят. Я попробовал ввести пользователя в число и использовать это число, чтобы выбрать строку из массива константных строк. Но довольно очевидно, что это привело к ошибке преобразования типа. Есть ли способ преобразовать литеральную строку типа в нее типа или напрямую обратиться к типу. Благодарю!
Вот код, который мне нужен, чтобы соответствовать типу во время выполнения:
SimpleVector<TYPE> myVect = SimpleVector<TYPE>(dataSize);
Я также пробовал этот оператор switch, который мне бы хотелось лучше, но я получаю ошибку переопределения.
switch (dataChoice) {
case 1:
SimpleVector<int> myVect = SimpleVector<int>(dataSize);
break;
case 2:
SimpleVector<double> myVect = SimpleVector<double>(dataSize);
break;
case 3:
SimpleVector<string> myVect = SimpleVector<string>(dataSize);
break;
default:
break;
}
Чтобы избавиться от ошибки переопределения, вы должны заключить определение типа внутри фигурных скобок
switch (dataChoice) {
case 1:
{
SimpleVector<int> myVect = SimpleVector<int>(dataSize);
break;
}
case 2:
{
SimpleVector<double> myVect = SimpleVector<double>(dataSize);
break;
}
default:
break;
}
ТИП - это то, что компилятор должен знать во время компиляции: когда вы пытаетесь использовать строковое значение вместо типа, компилятор отказывается сотрудничать.