劳扰各位老师帮我看一下map容器做类的私用成员使用时出现的奇怪问题
我想做一个通讯录,就定义了一个Addrss_Book类,类里面定义了一个私用的成员函数map<string,string> userdata用来读取文件中的数据(用户名和密码存在文件中) 在load()函数里面实现读取。可是编译时却出现insert”: 2 个重载没有“this”指针的合法转换 如果我在load()函数中重新定义一个map容器a,然后使用就不会出现上面的错误。这到底是什么原因啊。map容器的insert用法应该没有错啊,麻烦各位老师看一下,不胜感激。
代码:
#include<string>
#include<map>
#include<iostream>
#include<fstream>
using namespace std;
class Address_Book
{
public:
void load(const string filename) const
{
string value;
string key;
fstream in_out_put;
in_out_put.close();
in_out_put.clear();
in_out_put.open("userdata.txt",ios_base::app|ios_base::in|ios_base::out); //打开文件,如果不存在则创建一个
in_out_put << "aaaaa" <<endl; // 向文件中写入数据,以便于测试
in_out_put <<"bbbbb" <<endl;
while(in_out_put >>value >>key ) // 读取文件中的数据放入 map容器中
{
userdata.insert(make_pair("hehe","hehe")); //!!!! 出现错误!!!
}
in_out_put.close(); // 关闭文件
}
private:
map<string,string> userdata;//存放从文件中读取的数据
};
void main()
{
}