#include <string>
#include <iostream>
#include <map>
class ClassA
{
public :
ClassA(int num) { id = num; }
private:
int id;
};
int main()
{
std::map < std::string, ClassA > M;
ClassA a(1);
M["song"] = a;
}
error: no matching constructor for initialization of ‘std::map<std::__cxx11::basic_string<char>, ClassA, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, ClassA> > >::mapped_type’ (aka ‘ClassA’)
#include <string>
#include <iostream>
#include <map>
class ClassA
{
public :
ClassA(int num) { id = num; }
ClassA(){}
private:
int id;
};
int main()
{
std::map < std::string, ClassA > M;
ClassA a(1);
M["song"] = a;
}
这样就可以了。