string類的實現加強版
阿新 • • 發佈:2019-02-13
對上次的實現做了改進之後,實現為如下程式碼:
#include<iostream> #include<cstring> using namespace std; class String { public: String(char *str="") :_str(new char[strlen(str+1)]) { strcpy(_str,str); } String(const String& str) :_str(NULL) { String tmp(str._str); swap(_str,tmp._str); } ~String() { delete[] _str; } String& operator=(String& str) { swap(_str,str._str); return *this; } friend ostream& operator<<(ostream& os,const String& str); private: char *_str; }; ostream& operator<<(ostream& os,const String& str) { os<<str._str<<endl; return os; } int main() { String s1("go"); String s2("die"); String s3=s1; cout<<s1; cout<<s2<<s3; getchar(); return 0; }