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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 疏附县| 贵阳市| 兴化市| 确山县| 南岸区| 宁明县| 尚志市| 刚察县| 虞城县| 巴彦淖尔市| 临安市| 泸水县| 兴海县| 株洲市| 漯河市| 广东省| 南平市| 平江县| 河北区| 都昌县| 大洼县| 洪雅县| 隆尧县| 兴安县| 财经| 石台县| 荆门市| 蒲江县| 达尔| 乌恰县| 威远县| 竹山县| 灵山县| 九江县| 宾川县| 怀宁县| 荣昌县| 咸宁市| 丰城市| 青田县| 商河县|