我希望能够做到以下几点:
我有一个包含数据类型的字符串数组:
string DataTypeValues[20] = {"char", "unsigned char", "short", "int"};
然后,我想在运行时创建其中一种数据类型的变量。我不会在编译时知道正确的数据类型应该是什么。
例如,如果在运行时我确定一个变量 x 需要是 int 类型:
DataTypeValues[3] x = 100;
显然这行不通,所以我怎么能做这样的事情呢?
原文由 Blade3 发布,翻译遵循 CC BY-SA 4.0 许可协议
简单的答案是你不能——在 C++ 编译时需要知道类型。您可以使用 boost::any 或 unions 之类的东西来做类似的事情,但它不会很漂亮。