我希望能够做到以下几点:
我有一个包含数据类型的字符串数组:
string DataTypeValues[20] = {"char", "unsigned char", "short", "int"};
Run Code Online (Sandbox Code Playgroud)
然后,我想在运行时创建一个数据类型的变量.我不会在编译时知道正确的数据类型应该是什么.
因此,例如,如果在运行时我确定变量x需要是int类型:
DataTypeValues[3] x = 100;
Run Code Online (Sandbox Code Playgroud)
显然这不起作用,所以我怎么能这样做呢?
小智 16
简单的答案是你不能 - 在C++编译时需要知道类型.你可以使用诸如boost :: any或unions之类的东西做类似的东西,但它不会很漂亮.
sme*_*lin 12
你必须使用联合来实现类似的东西,但处理联合是一个非常困难的事情,所以你应该选择一个容器类,它将联合逻辑包装在Boost.Variant或Qts QVariant等接口的后面.
归档时间: |
|
查看次数: |
11870 次 |
最近记录: |