#include
class CMyString
{
public:
CMyString(char* pData = NULL);
CMyString(const CMyString& str);
~CMyString(void);
CMyString& operator = (const CMyString& str);
void Print();
private:
char* m_pData;
};
CMyString::CMyString(char*pData){
if(pData==NULL){
m_pData=new char[1];
m_pData[0]='/0';
}
else{
int a = strlen(pData);
pData = new char(a+1);
strcpy(m_pData,pData);
}
}
CMyString::CMyString(const CMyString& str){
int b = strlen(str.m_pData);
m_pData = new char(b+1);
strcpy(m_pData,str.m_pData);
}
CMyString::~CMyString(){
delete[] m_pData;
}
CMyString& CMyString::operator =(const CMyString& str){
if(this==&str){
return *this;
}
delete[] m_pData;
m_pData = new char(strlen(str.m_pData)+1);
strcpy(m_pData,str.m_pData);
return *this;
}
//==============测试用例=================
void CMyString::Print(){
printf("%s",m_pData );
}
void test(){
char* text = "Junwa";
CMyString str1(text);
CMyString str2;
str2 = str1;
str1.Print();
str2.Print();
}
int main()
{
test();
return 0;
}