《编写类String的构造函数、析构函数和赋值函数.docx》由会员分享,可在线阅读,更多相关《编写类String的构造函数、析构函数和赋值函数.docx(3页珍藏版)》请在三一文库上搜索。
1、编写类String的构造函数、析构函数和赋值函数问题:编写类String的构造函数、析构函数和赋值函数回答:编写类String的构造函数、析构函数和赋值函数,已知类String 的原型为:class Stringpublic:String(const char *str = NULL); 普通构造函数String(const String other); / 拷贝构造函数String(void); 析构函数String operate =(const String other); /赋值函数private:char *m_data; /用于保存字符串解答:/普通构造函数String:Strin
2、g(const char *str)if(str=NULL)m_data = new char1;/得分点:对空字符串自动申请存放结束标志。的空加分点:对 m_data力口 NULL判断*m_data = 0elseint length = strlen(str);m_data = new charlength+1; /若能力口 NULL 判断则更好strcpy(m_data, str);/ String 的析构函数String:String(void)delete 口 m_data; / 或 delete m_data;/拷贝构造函数String:String(const String ot
3、her) / 得分点:输入参数为const 型int length = strlen(other.m_data);m_data = new charlength+1;力口分点:对 m_data 力口NULL判断strcpy(m_data, other.m_data);/赋值函数String String:operate =(const String other) / 得分点: 输入参数为const型if(this = other) / 得分点:检查自赋值return *this;delete 口 m_data; /得分点:释放原有的内存资源int length = strlen( other.m_data );m_data = new charlength+1;力口分点: 对 m_data 力口NULL判断strcpy( m_data, other.m_data );return *this; 得分点:返回本对象的引用 3