1. 程式人生 > 其它 >賦值運算子函式__from <劍指Offer>

賦值運算子函式__from <劍指Offer>

        前段時間忙於專案,難得偷得幾日閒,為即將到來的就業季做準備。在面試時,應聘者要注意多和考官交流,只有具備良好的溝通能力,才能充分了解面試官的需求,從而有針對性地選擇演算法解決問題。

        題目來源於《劍指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] = '