相关疑难解决方法(0)

822
推荐指数
10
解决办法
35万
查看次数

无法在类中初始化静态地图

我正在尝试
map<string, int>
在我的程序中初始化一个静态映射,如下所示:

测试应用程序

class testApp(){
public:
void setup();
void update();
void renew();
static map<string, int> _someMap;
};
Run Code Online (Sandbox Code Playgroud)

测试应用程序

testApp::setup(){
   _someMap["something"] = 1;
   _someMap["something2"] = 2;
cout<<_someMap["something"]<<"\n";
}
Run Code Online (Sandbox Code Playgroud)

我不想boost使用 map 的这种短暂使用并为我的代码添加源依赖项。我不在,C++11而且程序中没有构造函数,因为该类是某个框架的类。我在 Xcode 上执行上述操作时.cpp,出现以下错误:

Undefined symbols for architecture i386:
  "testApp::mapppp", referenced from:
      testApp::setup() in testApp.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

-->另外,假设我的地图是私有的,为此我尝试在课堂上这样做:

...
private:
static someVariable;
static void someFunction(); …
Run Code Online (Sandbox Code Playgroud)

c++ static map

5
推荐指数
1
解决办法
3144
查看次数

标签 统计

c ×1

c++ ×1

c++-faq ×1

declaration ×1

definition ×1

map ×1

static ×1

terminology ×1