C++4個基本函數

來源:互聯網
上載者:User

class String

{

   public:

           String(const char *str = NULL);     // 普通建構函式

           String(const String &other);     // 拷貝建構函式

           ~ String(void);         // 解構函式

           String & operator =(const String &other); // 賦值函數

   private:

           char   *m_String;    //私人成員,儲存字串

};

 String::~String(void)            

{

       cout<<"Destructing"<<endl;

       delete [] m_String;                     

  

 String::String(const char *str)     

{

       cout<<"Construcing"<<ENDL;

       if(str==NULL)                         

      {

            m_String = new char[1];   

           *m_String = '\0';                     

       }                                       

        else {

          int length = strlen(str);          

          m_String = new char[length+1];       

          strcpy(m_String, str);               

       }

}

String::String(const String &other) 

{

      cout<<"Constructing Copy"<<endl;

      int length = strlen(other.m_String); 

      m_String = new char[length+1];        

      strcpy(m_String, other.m_String);        

}

String & String::operator =(const String &other)  

{

       cout<<"Operate = Function"<<endl;               

       if(this == &other)

             return *this;

      //釋放原有的記憶體資源          

      delete [] m_String;

    //分配新的記憶體資源,並複製內容

      int length = strlen(other.m_String);

      m_String = new char[length+1];        

      strcpy(m_String, other.m_String);         

      return *this;

}

void main()

{

  String a("auss");

  String b("MTK");

  String c(a);

  c=b;

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.