string 重载的有关问题
string 重载的问题
string str=str1+str2; str1 str2都是string
但是写成str1.operator+(str2)就说没有成员operator+
1.那么第一句中的+是在哪里重载的呢?
2.我用的是vs2010 输入str.之后会有成员列表显示,供选择输入,但是成员列表里并没有+操作符,这怎么解释?
3.如下图报错,不明白 参数1 string为啥要转成int?我重载的目的不就为了拼接string和int嘛?
------解决方案--------------------
想要在字符串后面加上一个数字(把这个数字转为字符串接在后面),
只要 operator+(int)就行了。
------解决方案--------------------
貌似你得先弄个新的类继承string,然后再在你的新类中重载(或者是覆写)这个函数。
------解决方案--------------------
Operator+对string来说不会在类中重载而是在类外
String& operator+( const string&,const string&)
在<string>中定义为全局
因为在类中定义无法支持"jack"+str的操作 因为左操数要string类型
显式调用std::operator+(…,…)
string str=str1+str2; str1 str2都是string
但是写成str1.operator+(str2)就说没有成员operator+
1.那么第一句中的+是在哪里重载的呢?
2.我用的是vs2010 输入str.之后会有成员列表显示,供选择输入,但是成员列表里并没有+操作符,这怎么解释?
3.如下图报错,不明白 参数1 string为啥要转成int?我重载的目的不就为了拼接string和int嘛?
------解决方案--------------------
想要在字符串后面加上一个数字(把这个数字转为字符串接在后面),
只要 operator+(int)就行了。
------解决方案--------------------
貌似你得先弄个新的类继承string,然后再在你的新类中重载(或者是覆写)这个函数。
------解决方案--------------------
Operator+对string来说不会在类中重载而是在类外
String& operator+( const string&,const string&)
在<string>中定义为全局
因为在类中定义无法支持"jack"+str的操作 因为左操数要string类型
显式调用std::operator+(…,…)