我有一个字符串,并且想要动态使用它作为结构名称。来自字符串的动态结构名称
struct employee{
atributes ....
}
string name;
cin >>name;
employee "name"
and then use the named employee !
不起作用
employee &name = new employee();
不起作用
我有一个字符串,并且想要动态使用它作为结构名称。来自字符串的动态结构名称
struct employee{
atributes ....
}
string name;
cin >>name;
employee "name"
and then use the named employee !
不起作用
employee &name = new employee();
不起作用
这是不可能在C++中。查看associative containers的概念以存储对类/结构实例的命名引用,例如std::map<std::string, employee>
。这creates a 'map'类将基于字符串的键映射到employee
类型的值。
实际上,您不能将运行时字符串值用作变量名称。您可以使用map通过字符串或其他键类型为对象索引:
#include <map>
std::map<std::string, employee> employees;
employees[name] = employee();
@NielsKeurentjes呃什么?!? – 2014-09-03 11:14:44
呃我的不好,看得太快。对不起:)在写答案时不应该拿起电话...... – 2014-09-03 11:16:44
您从哪里找到语法'employee&name = new employee();'? C++不是一种语言,你可以写出第一个想到的东西(甚至从另一种语言改编而来)并期望它能够工作。最好的行动方式不是有人告诉你确切的语法,而是从一本好的介绍性书籍中学习。 – 2014-09-03 11:12:13
你不能那样做。也许你应该解释你正在试图解决什么问题,导致你提出这个建议的解决方案。 – molbdnilo 2014-09-03 11:33:05
C++不是JavaScript。一个是静态的,另一个是动态的,你刚刚加入了其中的一个核心区别:) – Drax 2014-09-03 12:56:45