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

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

C++實現String類實例代碼

2020-01-26 14:11:37
字體:
來源:轉載
供稿:網友

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;//調用重載后的賦值函數 } 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜州市| 隆子县| 桐梓县| 开封市| 天长市| 明溪县| 额尔古纳市| 台南市| 六枝特区| 始兴县| 筠连县| 大冶市| 汾阳市| 赞皇县| 大竹县| 文成县| 崇阳县| 台湾省| 南充市| 武安市| 高雄市| 敦煌市| 肃南| 赣榆县| 湟源县| 天长市| 巴彦淖尔市| 永丰县| 板桥市| 克拉玛依市| 泸州市| 霸州市| 墨江| 南岸区| 富锦市| 五指山市| 炎陵县| 麦盖提县| 陕西省| 福安市| 湘乡市|