重载等号运算符的疑问,先行谢过
格兰特杨 2004-01-15 11:05:36 #include"iostream.h"
#include"string.h"
class string
{
private:
char *str;
public:
string(char *s="")
{
int length=strlen(s);
str=new char[length+1];
strcpy(str,s);
}
~string(){delete[] str;}
void display(){cout<<str<<endl;}
string &operator=(string &s)
{
delete str;
int length=strlen(s.str);
str=new char[length+1];
strcpy(str,s.str);
return(*this);
}
};
问题:重载运算符=时s是代表什么?是this的一个copy吗?如果是的话为什么delete this->str后s.str还可以用?或者s有别的意义...?
Thanks.