实现最简单的string类的深拷贝

页面导航:首页 > 软件编程 > Java编程 > 实现最简单的string类的深拷贝

实现最简单的string类的深拷贝

来源: 作者: 时间:2016-01-21 09:39 【

#includeiostreamusing namespace std;class String{public: String() :_str( new char [1]) ...
#include<iostream>
using namespace std;

class String
{
public:
                String()
                                :_str( new char [1])
                {
                                _str = '\0';
                }
                String( const char * str)
                                :_str( new char [strlen(str) + 1])
                {
                                strcpy( this->_str ,str);
                }
                String( const String& str)
                                :_str( new char [strlen(str._str) + 1])
                {
                                strcpy( this->_str ,str._str);
                }
                ~String()
                {               
                                 delete []_str;
                }
                String& operator= (const String& str)
                {
                                String tmp(str);
                                swap( this->_str ,tmp._str );
                                 return *this ;
                }
                 void Display()
                {
                                printf( "%s\n",_str);
                }
private:
                 char *_str;
};

void test1()
{
                String s1( "change world");//构造
                s1.Display();
                String s2 = s1; //拷贝构造
                s2.Display();
                String s3;
                s3.Display();
                s3 = s1; //赋值拷贝
                s3.Display();
}

int main()
{
                test1();
                system( "pause");
                return 0;
}

 


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<