剑指offer-面试题1:赋值运算符函数
如下为类型CMyString的声明,请为该类型添加赋值运算符函数。
解析:给一个类进行运算符重载。
关键部分代码:
CMyString& CMyString::operator =(const CMyString &str) { if(this == &str) return *this; //判断传入的参数和当前实例是不是同一个实例。 delete []m_pData; //是否释放实例已有的内存 m_pData = nullptr; m_pData = new char[strlen(str.m_pData)]; strcpy(m_pData,str.m_pData); return *this; //返回实例自身的引用,才能进行连续赋值 }