class A
{
public:
std::string mStr;
bool operator == (const char* s) const
{
return 0 == strcmp(mStr.c_str(), s);
}
operator const char* () const
{
return mStr.c_str();
}
};
A testA;
if(testA == "")
cout << "1" << endl;
if("" == testA)
cout << "2" << endl;
可以输出1 , 但是不能输出2, 因为 “”==testA,调用的()访问运算符,返回char * 比较的地址。
可以增加外部比较函数 , freind bool operator == (const char* s, const A& a)