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

来源:互联网 发布:服务器端软件 编辑:程序博客网 时间:2024/06/06 06:49

编写类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;}   

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

0 0