#include <iostream>
#include <cstring>
using namespace std;
class MyString
{
public:
MyString(const char *pData = NULL);
MyString(const MyString &str);
MyString& operator = (const MyString &str);
void Show(){cout << "size:" <<size << " " << data << endl;}
~MyString(){delete []data; data = NULL;}
private:
char *data;
int size;
};
MyString::MyString(const char *pData)
{
if(pData == NULL)
{
data = new char[1];
*data = '\0';
size = 0;
}
else
{
size = strlen(pData);
data = new char[size+1];
strcpy(data,pData);
}
}
MyString::MyString(const MyString &str)
{
size = str.size;
data = new char[size+1];
strcpy(data,str.data);
}
MyString& MyString::operator = (const MyString &str)
{
if(this == &str)
return *this;
delete []data;
data = NULL;
size = str.size;
data = new char[size+1];
strcpy(data,str.data);
return *this;
}
int main()
{
MyString s1;
char *p = "abcd";
MyString s2(p);
s1.Show();
s1 = s2;
s1.Show();
}
自定义string类
最新推荐文章于 2022-04-05 14:01:01 发布