关于操作符重载问题
‘=’‘+’的重载,为什么说Could not find a match for 'MyString::operator =(MyString)'
MyString operator=(MyString &str)//重载“=”运算符
{
int size=strlen(str.pstr)+1;
char *p=this->pstr;
this->pstr=new char[size];
strcpy(this->pstr,str.pstr);
delete [] p;
return *this;
}
MyString operator+(MyString &str)//重载“+”运算符
{
int size=strlen(this->pstr)+strlen(str.pstr)+1;
MyString tempstr;
tempstr.pstr =new char[size];
strcpy(tempstr.pstr,this->pstr);
strcat(tempstr.pstr,str.pstr);
return tempstr;
}
main()
{
a=b;//通过
e=b+c;//重载“+”运算符//这里出的问题
}
MyString operator=(MyString &str)//重载“=”运算符
{
int size=strlen(str.pstr)+1;
char *p=this->pstr;
this->pstr=new char[size];
strcpy(this->pstr,str.pstr);
delete [] p;
return *this;
}
MyString operator+(MyString &str)//重载“+”运算符
{
int size=strlen(this->pstr)+strlen(str.pstr)+1;
MyString tempstr;
tempstr.pstr =new char[size];
strcpy(tempstr.pstr,this->pstr);
strcat(tempstr.pstr,str.pstr);
return tempstr;
}
main()
{
a=b;//通过
e=b+c;//重载“+”运算符//这里出的问题
}
...全文
相关推荐
C++ new、delete(new[]、delete[])操作符重载需要注意的问题
主要介绍了C++ new、delete(new[]、delete[])操作符重载需要注意的问题,本文同时讲解了兼容默认的 new、delete 的错误处理方式、多态的问题等内容,需要的朋友可以参考下
实现操作符重载 实现操作符重载
实现操作符重载实现操作符重载实现操作符重载实现操作符重载实现操作符重载
操作符重载详解
c++操作符重载详解,有详细的代码~已经调试好了可以运行的~
操作符重载
操作符重载
C++重载++与--操作符[可运行源码]
本文详细介绍了C++中重载自增(++)和自减(--)操作符的原理与实现方法。文章首先对比了C与C++中前置和后置++、--操作符的区别,指出在C++中前置操作符可以作为左值。接着,通过图解和代码示例,解释了如何通过重载操作符来实现前置和后置的不同行为,其中后置操作符通过增加一个无用的int类型参数来区分。文章还总结了前置和后置操作符的效率差异,指出后置操作符由于需要生成临时对象而效率较低。最后,通过一个知识点习题巩固了所学内容,并鼓励读者留言讨论。


