我有一個字符串,並且想要動態使用它作爲結構名稱。來自字符串的動態結構名稱
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