我收到错误:
error: no matching function for call to 'A::A()' note: candidates are: A::A(const A&) note: A::A(const std::string&,size_t)
由此:
#include <map> #include <string> using std::map; using std::string; class A { public: string path; size_t size; A (const string& p,size_t s) : path(p),size(s) { } A (const A& f) : path(f.path),size(f.size) { } A& operator=(const A& rhs) { path = rhs.path; size = rhs.size; return *this; } }; int main(int argc,char **argv) { map<string,A> mymap; A a("world",1); mymap["hello"] = a; // <----- here A b(mymap["hello"]); // <----- and here }