能相加的原因是因为调用了operator+操作符,两个char*,没有可以使用的的operator + 操作符自然就不可以了。
string operator+ (const string& lhs, const string& rhs);
string operator+ (const char* lhs, const string& rhs);
string operator+ (char lhs, const string& rhs);
string operator+ (const string& lhs, const char* rhs);
string operator+ (const string& lhs, char rhs);
你无法实现两个指针的operator+扩展,事实上,操作符重载对参数是有限制的,至少有一个应该是class type。
谢谢!
默认的类型是char*,char*没有+操作符重载
如果有一个string变量,直接使用了string类型的+操作符,所以可以
学习了。。。