賦值運算子函式__from <劍指Offer>
阿新 • • 發佈:2022-05-03
前段時間忙於專案,難得偷得幾日閒,為即將到來的就業季做準備。在面試時,應聘者要注意多和考官交流,只有具備良好的溝通能力,才能充分了解面試官的需求,從而有針對性地選擇演算法解決問題。
題目來源於《劍指Offer》,自己在原有基礎上稍作批註和修改。
問題:為型別新增賦值運算子函式,可以把CMyString例項賦值給另一個例項、自身和連續賦值。
學習點:考慮問題充分,自己不會把賦值情況、記憶體洩漏考慮到這麼細緻。
#include<cstring>
#include<cstdio>
class CMyString
{
public:
CMyString(char * pData = nullptr);
CMyString(const CMyString& str);
~CMyString(void);
CMyString& operator=(const CMyString& str);
void Print();
private:
char* m_pData; //類比C風格字串
};
CMyString::CMyString(char * pData)
{
if (pData==nullptr) //空指標
{
//建立空字串
m_pData = new char[1];
m_pData[0] = '