美文网首页
string实现

string实现

作者: vbuer | 来源:发表于2018-09-04 16:31 被阅读31次
    class String{
    public:
    //普通构造函数
    String(const char *str = NULL);
    //拷贝构造函数
    String(const String &other);
    //赋值函数
    String & operator=(String &other) ;
    //析构函数
    ~String(void);
    private:
    char* m_str;
    };
    
    分别实现以上四个函数
    //普通构造函数
    String::String(const char* str){
        if(str==NULL) //如果str为NULL,存空字符串{
            m_str = new char[1]; //分配一个字节
            *m_str = ‘\0′; //赋一个’\0′
    }else{
           str = new char[strlen(str) + 1];//分配空间容纳str内容
            strcpy(m_str, str); //复制str到私有成员m_str中
        }
    }
    //析构函数
    String::~String(){
        if(m_str!=NULL) //如果m_str不为NULL,释放堆内存{
            delete [] m_str;
            m_str = NULL;
    }
    }
    //拷贝构造函数
    String::String(const String &other){
        m_str = new char[strlen(other.m_str)+1]; //分配空间容纳str内容
        strcpy(m_str, other.m_str); //复制other.m_str到私有成员m_str中 
    }
    //赋值函数
    String & String::operator=(String &other){
        if(this == &other) //若对象与other是同一个对象,直接返回本{
            return *this
    }
        delete [] m_str; //否则,先释放当前对象堆内存
        m_str = new char[strlen(other.m_str)+1]; //分配空间容纳str内容
        strcpy(m_str, other.m_str); //复制other.m_str到私有成员m_str中
        return *this;
    
    }
    

    相关文章

      网友评论

          本文标题:string实现

          本文链接:https://www.haomeiwen.com/subject/asxnwftx.html