美文网首页
赋值运算符重载:字符串直接赋值给对象

赋值运算符重载:字符串直接赋值给对象

作者: Leo_2dab | 来源:发表于2017-07-24 18:04 被阅读0次
    #include"iostream"
    using namespace std;
    class String{
    private:
        char *str;
    public:
        String() :str(NULL){}
        const char*c_str(){ return str; }
        char*operator=(const char*s);
        ~String(){};
        String & operator=(const String&);  
        String(String &s);
    };
    char* String::operator=(const char*s){
        if (str) delete[]str;
        if (s){
            str = new char[strlen(s) + 1];
            strcpy(str, s);
        }
        else
            str = NULL;
        return str;
    }
    String::String(String &s){
        if (s.str){
            str = new char[strlen(s.str) + 1];
            strcpy(str, s.str);
        }
        else{
            str = NULL;
        }
    }
    String& String::operator = (const String& s){
        if (str == s.str) return *this;
        if (str) delete[]str;
        if (s.str){
            str = new char[strlen(s.str) + 1];
            strcpy(str, s.str);
        }
        else{
            str = NULL;
        }
    
        return *this;
    }
    int main(){
        String s;
        s = "Hello";
        cout << s.c_str() << endl;
        return 0;
    }

    相关文章

      网友评论

          本文标题:赋值运算符重载:字符串直接赋值给对象

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