string類中使用到了賦值構造函數(shù)、復制構造函數(shù)、構造函數(shù)、默認構造函數(shù)、析構函數(shù)、重載操作符等一些類操作
成都創(chuàng)新互聯(lián)公司專業(yè)提供成都棕樹機房服務,為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買成都棕樹機房服務,并享受7*24小時金牌售后服務。class String { public: String() { data = new char[1]; //這里為什么使用new char[1]呢,雖然是一個字符,這是為了和析構函數(shù)保持對稱,因為在別的構造函數(shù)中使用的char[] data[0]='\0'; length = 0; } String(const char* str) { length = strlen(str); data = new char[length+1]; strcpy(data,str); data[length]='\0'; } String(const char* str,int n) { length = n; data = new char[n+1]; strncpy(data,str,n); data[length] ='\0'; } String(const String& src) //拷貝構造函數(shù) 也就是復制構造函數(shù) { length = src.length; data = new char[length+1]; strcpy(data,src.data); } String& operator=(const String& src) //賦值構造函數(shù) { if(this == &src) return *this; delete [] data; data = new char[src.length+1]; strcpy(data,src.data); return *this; } String& operator=(const char* src) //另一種的賦值構造函數(shù) { delete [] data; length = strlen(src); data = new char[length+1]; strcpy(data,src); return *this; } char& operator[](int n) { return data[n]; } const char& operator[](int n) const //對于const成員函數(shù) 最好就是返回const的引用,這樣是為了避免返回值被修改 { return data[n]; } friend ostream& operator<<(ostream& os,const String& st); ~String() { delete [] data; } private: char* data; int length; }; ostream& operator<<(ostream& os,const String& st) { os<另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)頁名稱:一個string類的簡單實現(xiàn)案例-創(chuàng)新互聯(lián)
本文地址:http://weahome.cn/article/gejds.html