1. 程式人生 > >string類的實現加強版

string類的實現加強版

對上次的實現做了改進之後,實現為如下程式碼:

#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;
}