【C++】实现一个简洁版的class String

来源:互联网 发布:杭州seo搜索优化 编辑:程序博客网 时间:2024/04/27 09:53
//实现一个简洁版的class String#include <iostream>#include <string.h>using namespace std;class String{public:String(){_str = new char[1];_str[0] = '\0';}String(const char *str){_str = new char[strlen(str) + 1];strcpy(_str, str);}String(const String &s){_str = new char[strlen(s._str) + 1];strcpy(_str, s._str);}String& operator=(const String &s){/*if (this != &s)                           //普通方法有缺陷{delete[] _str;_str = new char[strlen(s._str) + 1];strcpy(_str, s._str);}return *this;*/if (&s != this)                                //异常安全的神赋值{String tmp(s._str);swap(_str, tmp._str);}return *this;}~String(){if (_str)delete[] _str;}void print(){cout << _str << endl;}private:char * _str;};int main(){String s1;String s2("abcdef");String s3(s2);String s4 = s3;s1 = s2;s1.print();s2.print();s3.print();s4.print();return 0;}

0 0
原创粉丝点击