用户从菜单C++选择数组类型
我已经创建了一个通用的类似数组的模板来创建不同类型的数组。现在,我需要从菜单中获取用户输入,了解他们正在构建哪种类型的阵列。我尝试让用户输入一个数字,并使用该数字从常量字符串数组中选择一个字符串。但很明显,这会引发类型转换错误。是否有方法将类型的文本字符串转换为其类型或直接引用类型。谢谢 以下是我需要在运行时将类型放入的代码:用户从菜单C++选择数组类型,c++,types,C++,Types,我已经创建了一个通用的类似数组的模板来创建不同类型的数组。现在,我需要从菜单中获取用户输入,了解他们正在构建哪种类型的阵列。我尝试让用户输入一个数字,并使用该数字从常量字符串数组中选择一个字符串。但很明显,这会引发类型转换错误。是否有方法将类型的文本字符串转换为其类型或直接引用类型。谢谢 以下是我需要在运行时将类型放入的代码: SimpleVector<TYPE> myVect = SimpleVector<TYPE>(dataSize); 我还尝试了这个switch语
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;
}
类型是编译器在编译时必须知道的:当您试图使用字符串值而不是类型时,编译器将拒绝协作
参考模板是编译时的东西,无法在运行时指定它们的参数。这是我第一次使用模板,但我构建了类并用不同类型的数据对其进行了测试,效果很好。现在根据要求,我应该让用户从菜单中选择他们想要输入的数据类型。没有办法做到这一点?我想我得问问谁写过作业要求,看看他们期望什么。谢谢您可能希望使用某种基类和共享的ptr来管理所有这些。你也可以查看任何boost,从这样一个简单的修复到我的问题,lol。它确实有效,但我不得不在每种情况下复制大量代码。我不确定我是否可以采取更干净的方法,但我确实满足了我需要满足的所有要求。谢谢你的帮助和分享这些信息,让人困惑,但它似乎真的很强大。