在一个类Class A中声明一个常函数AnsiString GPV(const AnsiString& sSec,const AnsiString& sK) const;和一个私有变量map<AnsiString,AnsiString> Map;
当在常函数GPV函数体中有涉及到map的[]操作符时,会出错,因为operator []可能会改变数据成员对象,这与常函数的特性不符,为了达到操作符[]的效果,我们可以用find()完成这个功能,在函数体中加入:
map<AnsiString,AnsiString>::const_iterator it=Map.find(sSection.LowerCase()+"@"+sKey.LowerCase());
if(it!=Map.end())
{
return it->second;
}
return "";
为了防止以后忘记就分享咯。