自定义的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='';
    }
    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;
}
原文地址:https://www.cnblogs.com/dgy5554/p/3973431.html