这段程序的矛盾如何解释
其实是个菜鸟问题:(代码如下)
string& string::operator=(const char* str){
if (!str) //if str is a null pointer
{
_size=0;
delete[] _string;
_string=0;
}
else
{
_size=strlen(str)
delete[] _string;
_string=new _string[_size+1];
strcpy(_string,str);
}
return *this;
}
这是一个关于运算符重载的程序,程序主题没什么,关键在于开头和结尾部分让我困惑,重载的操作符的返回类型定为string&,但为什么最后返回的是一个this指针?虽然我知道其实引用也是一个特殊的指针,但是这个this指针指的是什么呢?难道是新开辟的内存空间的首地址吗?