传智扫地僧课程学习笔记。
类对象,
使用=操作符,进行赋值的时候,
也属于一种浅拷贝,并且还可能造成内存泄露,
所以我们需要重载,我们所写类的等号操作符,
Name& operator=(Name &obj1)
{
//先释放旧的内存
if (this->m_p != NULL)
{
delete[] m_p;
m_len = 0;
}
//2 根据obj1分配内存大小
this->m_len = obj1.m_len;
this->m_p = new char [m_len+1];
//把obj1赋值
strcpy(m_p, obj1.m_p);
return *this;
}
为了支持链式编程,得返回引用,之后就支持obj1 = obj2 = obj3;这种形式的赋值了,