标签:
//实现一个简洁版的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; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/doudouwa1234/article/details/46827387