自定义的string类

#include <iostream>
#include <string>

using namespace std;

class MyString
{
public:
    MyString(const char* str);
    ~MyString();
    MyString(const MyString &str);
    MyString& operator=(const MyString &str);
private:
    char* pdata;
};

MyString::MyString(const char* str)
{
    if (str==NULL)
    {
        pdata=new char[1];
        pdata='\0';
    }
    else
    {
        int length=strlen(str)+1;
        pdata=new char[length];
        strcpy(pdata,str);
    }
}

MyString::MyString(const MyString &str)
{

    int length=strlen(str.pdata)+1;
    pdata=new char[length];
    strcpy(pdata,str.pdata);
}

MyString::~MyString()
{
    delete[] pdata;
}


MyString& MyString::operator=(const MyString &str)
{
    if (this!=&str)
    {
        MyString strtemp(str);
        char *temp=strtemp.pdata;
        strtemp.pdata=pdata;
        pdata=temp;
    }
    return *this;
}
posted @ 2014-09-05 10:47  啵啵那个臭  阅读(173)  评论(0编辑  收藏  举报