C++面试题:String类的实现

来源:互联网 发布:编程教程 编辑:程序博客网 时间:2024/06/03 23:41

C++面试题:String类的实现

标签: string   http://blog.csdn.net/yvhqbat/article/details/51611413
330人阅读 评论(0)收藏举报
分类:

编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:

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::String(const char *str=NULL){    if(str==NULL){        m_date=NULL;    }else{        int len=strlen(str);        m_data=new char[len+1];        strcpy(m_data,str);    }}String::String(const String &other){    int len=strlen(other.m_data);    m_data=new char[len+1];    strcpy(m_data,other.m_data);}String::~String(){    if(m_data!=NULL){        delete[] m_data;        m_data=NULL;    }}String& String::operator=(const String &other){    if(this==&other){        return *this;    }    if(m_data!=NULL){        delete[] m_data;    }    int len=strlen(other.m_data);    m_data=new char[len+1];    strcpy(m_data,other.m_data);    return *this;}   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

参考:http://www.cnblogs.com/jwyue0520/archive/2012/12/03/2800160.html

原创粉丝点击