C++面试题

当前位置: 面试问题网 > C++面试题 > 编写类String的构造函数、析构函数和赋值函数

编写类String的构造函数、析构函数和赋值函数

C++面试题  手机阅读
已知类String的原型为:
   class String
   {
   public:
   String(const char *str = NULL); // 普通构造函数
   String(const String &other); // 拷贝构造函数
   ~ String(void); // 析构函数
   String & operate =(const String &other); // 赋值函数
   private:
   char *m_data; // 用于保存字符串
   };
   请编写String的上述4个函数。
   标准答案:
  
   // String的析构函数
   String::~String(void) // 3分
   {
   delete [] m_data;
   // 由于m_data是内部数据类型,也可以写成 delete m_data;
   }
  
   // String的普通构造函数
   String::String(const char *str) // 6分
   {
   if(str==NULL)
   {
   m_data = new char[1]; // 若能加 NULL 判断则更好
   *m_data = ‘’;
   }
   else
   {
   int length = strlen(str);
   m_data = new char[length+1]; // 若能加 NULL 判断则更好
   strcpy(m_data, str);
   }
   }
   // 拷贝构造函数
   String::String(const String &other) // 3分
   {
   int length = strlen(other.m_data);
   m_data = new char[length+1]; // 若能加 NULL 判断则更好
   strcpy(m_data, other.m_data);
   }
   // 赋值函数
   String & String::operate =(const String &other) // 13分
   {
   // (1) 检查自赋值 // 4分
   if(this == &other)
   return *this;
  
   // (2) 释放原有的内存资源 // 3分
   delete [] m_data;
  
   // (3)分配新的内存资源,并复制内容 // 3分
   int length = strlen(other.m_data);
   m_data = new char[length+1]; // 若能加 NULL 判断则更好
   strcpy(m_data, other.m_data);
  
   // (4)返回本对象的引用 // 3分
   return *this;
   }

【编写类String的构造函数、析构函数和赋值函数】相关文章

1. 编写类String的构造函数、析构函数和赋值函数

2. 编写类String 的构造函数、析构函数和赋值函数

3. String、StringBuffer、StringBuilder有区别

4. String s = new String(“xyz”);创建了几个String Object?

5. StringBuilder和String的区别

6. 构造方法和其他方法的区别?怎么调用父类的构造方法

7. Java里面StringBuilder和StringBuffer有什么区别

8. String和StringBuffer的区别

9. string = null 和string = \'\'的区别

10. 若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedExcepti

本文来源:https://www.mianshiwenti.com/a13140.html

点击展开全部

《编写类String的构造函数、析构函数和赋值函数》

将本文的Word文档下载到电脑,方便收藏和打印

推荐程度:

进入下载页面
上一篇:求∏的近似值,直到最后一项的绝对值小于指定的数 下一篇:写出二分查找算法的两种实现

﹝编写类String的构造函数、析构函数和赋值函数﹞相关内容

「编写类String的构造函数、析构函数和赋值函数」相关专题

string 构造函数 析构函数
复制网址 收藏网址 分享到微信 分享到微博 分享到QQ

其它栏目

软件工程师面试题 软件测试面试题 网络管理员面试题 java面试题 .NET面试题 PHP面试题 C#面试题 C++面试题 Delphi面试题 Ruby面试题 Python面试题 Javascript面试题 android面试题 iOS面试题 jQuery面试题 Linux/Unix面试题 DBA面试题

也许您还喜欢