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" }
};
但我一直在重新定义;多次初始化错误;我该如何申报和初始化?我希望地图是全球性的。可以不将地图包装在一个类中吗?我只想让这个文件成为其他文件的地图和值的信息。
答案 0 :(得分:6)
注意{{1}}仍然是definition,即使没有初始值设定项(即空地图)。
您可以使用extern在{{1}};
中将其作为声明{{1}}
此外,使用extern且没有初始值设定项的变量声明不是定义。