NULL and const std::string are different types. You need not to initialize std::map. The constructor of each class member will be called implicitly. So the only data member that need to be initialized is size (though I do not know what it means. If it corresponds to the value of std::map's member function size() then it should be removed).