国产探花免费观看_亚洲丰满少妇自慰呻吟_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;//調用重載后的賦值函數 } 

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿克陶县| 宜阳县| 固安县| 邢台县| 通江县| 汉川市| 定南县| 肇东市| 石台县| 敖汉旗| 罗江县| 襄汾县| 鲁山县| 磐安县| 泽普县| 铜川市| 永昌县| 越西县| 龙门县| 彭山县| 佛冈县| 武安市| 大荔县| 咸丰县| 神池县| 白水县| 英吉沙县| 西青区| 三河市| 大足县| 农安县| 南雄市| 基隆市| 磐石市| 大名县| 威海市| 阿巴嘎旗| 桑日县| 石楼县| 洛宁县| 双牌县|