小編給大家分享一下怎么使用C++實現(xiàn)String類,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都集裝箱小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)站營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
C++實現(xiàn)String類實例代碼
這是一道十分經(jīng)典的面試題,可以短時間內(nèi)考查學(xué)生對C++的掌握是否全面,答案要包括C++類的多數(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;如果沒有這句話,就會出現(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;//刪除被賦值對象中指針變量指向的前一個內(nèi)存空間,避免 //內(nèi)存泄漏 int length=strlen(other.m_data);//計算長度 m_data=new char[length+1];//申請空間 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ù),因為是在d對象建立的過程中用a來初始化 d=c;//調(diào)用重載后的賦值函數(shù) }
以上是“怎么使用C++實現(xiàn)String類”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前題目:怎么使用C++實現(xiàn)String類
文章位置:http://www.rwnh.cn/article20/ippdco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、定制網(wǎng)站、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計、Google、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)