and this is what I tried next..
//mainData is a Config type.std::map <std::string, std::string> Config::Get(){return config;}//and config is a mapstd::map <std::string, std::string> config;//new_shenu.cpp:97skin.Display( mainData.Get() );//Skin.h:127void Display();//Skin.h:128void Display( const std::map<std::string, std::string>& para_skinData);
New Errors:
Skin.cpp: In member function 'void Skin::Display(const std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<const std::string, std::string> > >&)':Skin.cpp:958: error: no matching function for call to 'Skin::Read(const char [5], const std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<const std::string, std::string> > >&)'Skin.cpp:172: note: candidates are: void Skin::Read(std::string)Skin.cpp:186: note: void Skin::Read(std::string, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<const std::string, std::string> > >&)*** Error code 1
SOOOO ANNOYING!!!
so I follow Skin.cpp:958
void Skin::Display( const std::map<std::string, std::string>& para_skinData){ print::Instance().Header( "success" ); print::Instance().Body( "" ); Read("Head"); Read("Body", para_skinData); // this is 958 Read("Tail"); print::Instance().Tail( "" );}
and I search the corresponding method, which was Read.
void Skin::Read( std::string para_loadKey, std::map<std::string, std::string>& para_skinData ){ skinData=NULL; skinData=¶_skinData; /* std::cout << &*skinData; for( loop=(*skinData).begin(); loop!=(*skinData).end(); loop++ ){ std::cout << loop->first << "=" << loop->second << "\n"; } */ if ( TestingMode ) std::cout << "**************Begin Skin::Read(std::string, std::map )****************\n\n"; Read( para_loadKey); if ( TestingMode ) std::cout << "**************End Skin::Read(std::string, std::map )****************\n\n";}
Now, many other classes use Read(string, map&), so I can't change Read, but I should change Display. [cry]