2014-11-05 65 views
0

以外私人地图我在头文件中的地图作为插入元件插入从类

public: 
    typedef map<string, int> mymap; 

    private: 
      mymap m; 
在main.cpp中

,我想将值插入“M”,这是一个同义词到地图。我如何插入值?像

m.insert(...); 
+1

Sh在你全班上课。 – David 2014-11-05 00:52:23

+0

声明'm'是公共的,就像...'public:mymap m;'那么你可以在其中插入值! – Blackhat002 2014-11-05 00:54:20

回答

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);