unordered_map<std::string, std::string>* Accounts;
我有这个代码从指针初始化,我可以把指针(*)从它中删除,我可以直接将值分配给它,但问题是我正在使用C ++ / Cli Visual Studio 2008和我无法在类范围
中定义变量因为它会抛出此错误:
错误C4368:无法将“帐户”定义为托管成员 'Test :: Login':混合类型不是 支持C:\ Projects \ Test \ Login.h 32
所以我被告知我应该创建一个指针,然后在构造函数中初始化它,但是如何从指针创建它? (我想像Accounts = new unordered_map) 我总是直接去。
我希望我足够清楚。
@edit
public ref class Login: public System::Windows::Forms::Form
{
public:
unordered_map< std::string, std::string >* Accounts;
Test(void)
{
this->Accounts = new unordered_map<std::string, std::string>();
this->Accounts["hello"] = "test";
cout << this->Accounts["hello"];
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
它会抛出此错误:
错误4错误C2107:非法索引,间接不是 允许C:\ Projects \ Test Login.h 37
提前致谢!
答案 0 :(得分:2)
unordered_map<std::string, std::string>* Accounts = new unordered_map<std::string, std::string>();
记住你需要在完成后删除它。
delete Accounts;