我在头文件中有一张地图
public:
typedef map<string, int> mymap;
private:
mymap m;
在main.cpp中,我想将值插入“m”,这是地图的同义词。我如何插入值?喜欢
m.insert(...);
答案 0 :(得分:2)
您无法直接插入它们,因为m
是私有成员。您只能从课堂外访问公共成员(除非main()
是该课程的朋友,这是不可能的)。
可能的解决方案包括添加(或使用现有的)将为您插入的公共方法:
public:
void insert(std::pair<string, int> const &);
void insert(string const &, int);
或者将地图公开(可能是一个坏主意):
public:
mymap m;
或者将您的main()
功能添加为班级的朋友(几乎肯定是一个坏主意):
friend int main();
// Or, if your main() accepts the standard argc/argv parameters:
friend int main(int argc, char **argv);