重写了string的构造函数和赋值运算符
#include<iostream>
using namespace std;
class Mystring
{
private:
char * data;
public:
Mystring(const char * src)
{
if (src)
{
data = new char[strlen(src) + 1];
strcpy(data, src);
}
else
{
data = new char[1];
*data = '\0';
}
}
Mystring & operator=(const Mystring & src1)//返回Mystring是为了支持链式操作
{
if (this == &src1)
return *this;
delete[]data;
data = new char[strlen(src1.data) + 1];
strcpy(data, src1.data);
return *this;
}
void print()
{
cout << data << endl;
}
};
int main()
{
Mystring A("abc");
A.print();
Mystring B = A;
B.print();
}
测试结果: