写一个String的构造函数 考察浅拷贝知识

来源:互联网 发布:外呼软件 编辑:程序博客网 时间:2024/04/29 17:18
class CStringTest{public:CStringTest(char *str){int length=0;while(str[length]!='\0'){length++;}m_data=(char*)malloc(sizeof(char)*(length+1));strcpy(m_data,str);}CStringTest(CStringTest& otherString){int length=0;while(otherString.m_data[length]!='\0'){length++;}m_data=(char*)malloc(sizeof(char)*(length+1));strcpy(m_data,otherString.m_data);}void operator =(CStringTest& otherString){int length=0;while(otherString.m_data[length]!='\0'){length++;}m_data=(char*)malloc(sizeof(char)*(length+1));strcpy(m_data,otherString.m_data);}~CStringTest(){if(m_data)delete m_data;m_data=NULL;}public:char* m_data;};

错误的写法:

CStringTest(CStringTest& otherString){//int length=0;//while(otherString.m_data[length]!='\0')//{//length++;//}//m_data=(char*)malloc(sizeof(char)*(length+1));//strcpy(m_data,otherString.m_data);m_data=otherString.m_data;}



 

原创粉丝点击