C++中关于在头文件中如何去定义一个map,然后又如何在源文件(my.cpp)中引用

Guang_Nate 2017-01-09 11:51:02
想在头文件(my.h)中利用一个map类型建立一个std::map<string,uint> my_Map

并定义my_Map["one"] = 1;
my_Map["two"] = 2;
my_Map["three"] = 3;
my_Map["four"] = 1;

并且在cpp(my.cpp) 文件中#include “”my.h“”

在compile的过程中报出
error: 'my_Map' does not name a type my_Map["one"] = 1;
error: 'my_Map' does not name a type my_Map["two"] = 1;
error: 'my_Map' does not name a type my_Map["three"] = 1;
error: 'my_Map' does not name a type my_Map["four"] = 1;

求教大神这是什么原因,是my_Map定义出了什么问题吗?在头文件中如何去定义一个map,然后又如何在源文件(my.cpp)中引用呢?求大神赐教
...全文
688 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Guang_Nate 2017-01-12
  • 打赏
  • 举报
回复
我的初衷是想在头文件中通过map来定义一个const,然后在源文件中进行引用即可,现在已经解决了: //foo.h文件 const std::map<std::string,uint> my_Map = { {"one", 1}, {"two", 1}, {"three", 1} }; //foo.cpp文件 variable = my_Map .at("one") //通过这种方式引用头文件的内容即可
小竹浮生 2017-01-10
  • 打赏
  • 举报
回复
引用 楼主 Guang_Nate 的回复:
想在头文件(my.h)中利用一个map类型建立一个std::map<string,uint> my_Map 并定义my_Map["one"] = 1; my_Map["two"] = 2; my_Map["three"] = 3; my_Map["four"] = 1; 并且在cpp(my.cpp) 文件中#include “”my.h“” 在compile的过程中报出 error: 'my_Map' does not name a type my_Map["one"] = 1; error: 'my_Map' does not name a type my_Map["two"] = 1; error: 'my_Map' does not name a type my_Map["three"] = 1; error: 'my_Map' does not name a type my_Map["four"] = 1; 求教大神这是什么原因,是my_Map定义出了什么问题吗?在头文件中如何去定义一个map,然后又如何在源文件(my.cpp)中引用呢?求大神赐教
你说的太概念了,我想了一下,你是不是想这么做

class my
{
public:
//构造赋值
my()
{
my_map["one"] = 1;
my_map["two"] = 2;
my_map["three"] = 3;
};

~my()
{
};

//输出map中one键对应的值
void testMap()
{
cout<<my_map["one"]<<endl;
};

public:
std::map<std::string,int> my_map;

}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧