#include<iostream.h>
#include<string.h>
class cdemo{
public:
cdemo(char*s)
{
ps=new char[strlen(s)+1];
strcpy(ps,s);
}
cdemo &operator=(cdemo &a)
{
if(ps)delete[] ps;
if(a.ps){
ps=new char[strlen(a.ps)+1];
strcpy(ps,a.ps);
}
else ps=0;
return *this;
}
~cdemo()
{
if(ps)delete[] ps;
}
void print()
{
cout<<ps<<endl;
}
private:
char *ps;
};
void main()
{
cdemo d1("key"),d2("mouse");
d1=d2;
d1.print();
}
看看这一段
cdemo &operator=(cdemo &a) {
if(ps)delete[] ps;
if(a.ps){
ps=new char[strlen(a.ps)+1];
strcpy(ps,a.ps);
}
else ps=0;
return *this;
}
cdemo& 这个是返回什么啊 是什么意思啊
好晕哦 可以帮我解释的清楚点吗?
还有 '='的重载是不是只可以是非静态成员函数啊?