怎么使用C++實(shí)現(xiàn)String類

小編給大家分享一下怎么使用C++實(shí)現(xiàn)String類,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

堅(jiān)守“ 做人真誠(chéng) · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都集裝箱小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)站營(yíng)銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁(yè)布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。

C++實(shí)現(xiàn)String類實(shí)例代碼

這是一道十分經(jīng)典的面試題,可以短時(shí)間內(nèi)考查學(xué)生對(duì)C++的掌握是否全面,答案要包括C++類的多數(shù)知識(shí),保證編寫的String類可以完成賦值、拷貝、定義變量等功能。

#include<iostream> 
using namespace std; 
 
class String 
{ 
public: 
    String(const char *str=NULL); 
    String(const String &other); 
    ~String(void); 
    String &operator =(const String &other); 
private: 
    char *m_data; 
}; 
 
String::String(const char *str) 
{ 
  cout<<"構(gòu)造函數(shù)被調(diào)用了"<<endl; 
  if(str==NULL)//避免出現(xiàn)野指針,如String b;如果沒有這句話,就會(huì)出現(xiàn)野 
         //指針 
  { 
    m_data=new char[1]; 
    *m_data=''/0''; 
  } 
  else 
  { 
   int length=strlen(str); 
   m_data=new char[length+1]; 
   strcpy(m_data,str); 
  } 
} 
String::~String(void) 
{ 
  delete m_data; 
  cout<<"析構(gòu)函數(shù)被調(diào)用了"<<endl; 
} 
 
String::String(const String &other) 
{ 
 cout<<"賦值構(gòu)造函被調(diào)用了"<<endl; 
 int length=strlen(other.m_data); 
 m_data=new char[length+1]; 
 strcpy(m_data,other.m_data); 
} 
String &String::operator=(const String &other) 
{ 
   cout<<"賦值函數(shù)被調(diào)用了"<<endl; 
   if(this==&other)//自己拷貝自己就不用拷貝了 
         return *this; 
   delete m_data;//刪除被賦值對(duì)象中指針變量指向的前一個(gè)內(nèi)存空間,避免 
          //內(nèi)存泄漏 
   int length=strlen(other.m_data);//計(jì)算長(zhǎng)度 
   m_data=new char[length+1];//申請(qǐng)空間 
   strcpy(m_data,other.m_data);//拷貝 
   return *this; 
} 
void main() 
{ 
   String b;//調(diào)用構(gòu)造函數(shù) 
   String a("Hello");//調(diào)用構(gòu)造函數(shù) 
   String c("World");//調(diào)用構(gòu)造函數(shù) 
   String d=a;//調(diào)用賦值構(gòu)造函數(shù),因?yàn)槭窃赿對(duì)象建立的過程中用a來初始化 
   d=c;//調(diào)用重載后的賦值函數(shù) 
}

以上是“怎么使用C++實(shí)現(xiàn)String類”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前題目:怎么使用C++實(shí)現(xiàn)String類
文章位置:http://muchs.cn/article20/ippdco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化定制網(wǎng)站、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計(jì)、GoogleApp設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)