单独的地图声明和初始化

时间:2016-06-17 01:38:59

标签: c++ dictionary declaration definition

Value.h

#ifndef  VALUE_H
#define VALUE_H
#include <map>
#include <string>
std::map<uint8_t, std::string> status;
#endif

Value.cpp

#include "Value.h"
std::map<uint8_t, std::string> status = {
    { 0x00, "Status1" },
    { 0x11, "Status2" },
    { 0x10, "Status3" }
};

但我一直在重新定义;多次初始化错误;我该如何申报和初始化?我希望地图是全球性的。可以不将地图包装在一个类中吗?我只想让这个文件成为其他文件的地图和值的信息。

1 个答案:

答案 0 :(得分:6)

注意{{1}}仍然是definition,即使没有初始值设定项(即空地图)。

您可以使用extern在{{1}};

中将其作为声明
{{1}}
  

此外,使用extern且没有初始值设定项的变量声明不是定义。