#include <iostream>
#include <string.h>
using namespace std;
class String
{
char* str;
public:
String(const char* str)
{
if (NULL == str)
{
this->str = new char[1];
this->str[0] = '\0';
}
this->str = new char[strlen(str)+1];
strcpy(this->str,str);
}
String(void)
{
str = new char[1];
str[0] = '\0';
}
void show(void)
{
cout << str << endl;
}
//赋值构造
String& operator = (const String& that)
{
if (this != &that)
{
delete[] str;
str = new char[strlen(that.str)+1];
strcpy(str,that.str);
}
return *this;
}
//拷贝构造
String(const String& that)
{
str = new char[strlen(that.str)+1];
strcpy(str,that.str);
}
//析构
~String(void)
{
delete[] str;
}
};
int main()
{
String str1("hehe");
str1.show();
//String str2("xixi");
String str2 = "xixi";
str2.show();
str1 = str2;
str1.show();
String str3 = str2;
str3.show();
}
自己实现一个简单的string类
最新推荐文章于 2021-10-03 17:03:21 发布