【发布时间】:2013-11-30 16:20:27
【问题描述】:
有没有办法可以将数据类型写入字符串,然后从字符串中实例化类型。
我有一个地图编辑器,它可以创建一个定义地图(即:“aa”= 沙瓦,“ab”= 草瓦),但是如果不是使用大量的 switch 语句,我可以很方便访问瓦片的定义(即:我传入“aa”并接收沙瓦),然后直接实例化沙瓦。这是一些伪代码,以防我太含糊。
代替:
(下面的伪代码 sn-ps 假设所有瓦片都继承自某种瓦片类,该瓦片类具有接受 x 和 y 值的构造函数。)
switch definitions[tileType]{
case "sandTile":
sandTile tile(x,y);
break;
case "grassTile":
grassTile tile(x,y);
break;
case "waterTile":
waterTile tile(x,y);
break;
类似
string type = declarations[tileType];
magicalDataTypeCaster<type> tile(x,y);
感谢阅读!
【问题讨论】:
-
在 C++ 中没有反射,抱歉。
标签: c++ class types instantiation