国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++實現String類實例代碼

2020-05-23 13:47:52
字體:
來源:轉載
供稿:網友

C++實現String類實例代碼

這是一道十分經典的面試題,可以短時間內考查學生對C++的掌握是否全面,答案要包括C++類的多數知識,保證編寫的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<<"構造函數被調用了"<<endl;   if(str==NULL)//避免出現野指針,如String b;如果沒有這句話,就會出現野          //指針   {     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<<"析構函數被調用了"<<endl; }  String::String(const String &other) {  cout<<"賦值構造函被調用了"<<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<<"賦值函數被調用了"<<endl;    if(this==&other)//自己拷貝自己就不用拷貝了          return *this;    delete m_data;//刪除被賦值對象中指針變量指向的前一個內存空間,避免           //內存泄漏    int length=strlen(other.m_data);//計算長度    m_data=new char[length+1];//申請空間    strcpy(m_data,other.m_data);//拷貝    return *this; } void main() {    String b;//調用構造函數    String a("Hello");//調用構造函數    String c("World");//調用構造函數    String d=a;//調用賦值構造函數,因為是在d對象建立的過程中用a來初始化    d=c;//調用重載后的賦值函數 } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柳江县| 祥云县| 海伦市| 苍梧县| 宜昌市| 古蔺县| 建始县| 伊宁市| 柘城县| 旺苍县| 临夏县| 育儿| 合阳县| 商水县| 抚顺市| 永城市| 资溪县| 邢台县| 富阳市| 高安市| 平遥县| 澄迈县| 凤台县| 乌鲁木齐县| 铁岭县| 甘洛县| 九龙县| 两当县| 马鞍山市| 玛曲县| 宿州市| 昆山市| 津市市| 华坪县| 浏阳市| 山丹县| 温宿县| 巨鹿县| 巴林右旗| 老河口市| 凤冈县|