题目:
如下为类型CMyString的声明,请为该类型添加赋值运算符函数。
class CMyString {
public:
CMyString(char *pData = NULL);
CMyString(const CMyString& str);
~CMyString(void);
private:
char *m_pData;
};
解法一:
CMyString& operator=(const CMyString& str) {
if (this == &str) {
return *this;
}
delete []m_pData;
m_pData = new char[strlen(str.m_pData) + 1];
strcpy(m_pData, str.m_pData);
return *this;
}
解法二:
CMyString& operator=(const CMyString& str) {
if (this != &str) {
CMyString tmp(str);
char *pSwap = tmp.m_pData;
tmp.m_pData = m_pData;
m_pData = pSwap;
}
return *this;
}
网友评论