赋值运算符函数
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<assert.h>
class Mystring{
public:
Mystring()
{}
Mystring(char* pData)
{
if (pData==NULL)
{
pData=new char[1];
pData[0]='\0';
}
else
{
int length=strlen(pData);
Data=new char[length+1];
strcpy(Data,pData);
}
}
Mystring(const Mystring& str)
{
int length=strlen(str.Data);
Data=new char[length+1];
strcpy(Data,str.Data);
}
~Mystring()
{
delete[] Data;
}
Mystring& operator =(const Mystring&str)
{
if(this==&str)
return *this;
delete[] Data;
Data=NULL;
Data=new char[strlen(str.Data)+1];
strcpy(Data,str.Data);
return *this;
}
void Print()
{
printf("%s",Data);
}
private:
char* Data;
};
void test()
{
char* test="hello world";
Mystring str1(test);
Mystring str2;
str2=str1;
printf("%s\n",test);
str2.Print();
printf("\n");
}
int main()
{
test();
system("pause");
return 0;
}