c++ - 在全局级别实例化 (C++)

标签 c++ global-variables instantiation

我在下面的代码中遇到以下错误。

expected constructor, destructor, or type conversion before '=' token

--

#include <string>
#include <map>

class Foo {

};

std::map<std::string, Foo> map;
map["bar"] = Foo();

int main()
{

    return 0;
}

最佳答案

map["bar"] = Foo(); // This line is a statement not a declaration.
                    // You have to put it in main, or any execution context

在 C++0x 成为主流之前,我建议使用 boost。填充 map 变得轻而易举。这是一个例子:

std::map<std::string, Foo> mymap;
...
int main()
{
  insert(mymap)
   ("First",  Foo(...))
   ("Second", Foo(...))
   ("Third",  Foo(...));
   ...
}

关于c++ - 在全局级别实例化 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1627866/

相关文章:

C++类实例化和内部调用方法

c++ - Visual Studio 2013 Boost-log v1_61_0 链接错误

c++ - 容器中的元素多样性?

java - 我怎样才能让全局有一个唯一的号码?

c++ - 为什么我的全局外部 lambda 变量没有在运行时初始化?

objective-c - 合成 'global' 对象时出现 EXC_BAD_ACCESS

c++ - 文件无法在 C++ 中打开

c++ - 是否有可用于 windows 的自动升级库/框架具有与 Mac OSX 的 Sparkle 提供的功能相似的功能?

unity3d - 参数异常 : The prefab you want to instantiate is null

使用 Block 实例化 Java 类