2014-09-03 51 views
0

我有一个字符串,并且想要动态使用它作为结构名称。来自字符串的动态结构名称

struct employee{ 

atributes .... 
} 

string name; 
cin >>name; 


employee "name" 

and then use the named employee ! 

不起作用

employee &name = new employee(); 

不起作用

+1

您从哪里找到语法'employee&name = new employee();'? C++不是一种语言,你可以写出第一个想到的东西(甚至从另一种语言改编而来)并期望它能够工作。最好的行动方式不是有人告诉你确切的语法,而是从一本好的介绍性书籍中学习。 – 2014-09-03 11:12:13

+0

你不能那样做。也许你应该解释你正在试图解决什么问题,导致你提出这个建议的解决方案。 – molbdnilo 2014-09-03 11:33:05

+0

C++不是JavaScript。一个是静态的,另一个是动态的,你刚刚加入了其中的一个核心区别:) – Drax 2014-09-03 12:56:45

回答

4

实际上,您不能将运行时字符串值用作变量名称。您可以使用map通过字符串或其他键类型为对象索引:

#include <map> 

std::map<std::string, employee> employees; 

employees[name] = employee(); 
+0

@NielsKeurentjes呃什么?!? – 2014-09-03 11:14:44

+0

呃我的不好,看得太快。对不起:)在写答案时不应该拿起电话...... – 2014-09-03 11:16:44

相关问题