预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编写类String的构造函数、析构函数和赋值函数编写类String的构造函数、析构函数和赋值函数已知类String的原型为:classString{public:String(constchar*str=NULL);//普通构造函数String(constString&other);//拷贝构造函数~String(void);//析构函数String&operate=(constString&other);//赋值函数private:char*m_data;//用于保存字符串};请编写String的上述4个函数,编写类String的构造函数、析构函数和赋值函数。标准答案://String的.析构函数String::~String(void)//3分{delete[]m_data;//由于m_data是内部数据类型,也可以写成deletem_data;}//String的普通构造函数String::String(constchar*str)//6分{if(str==NULL){m_data=newchar[1];//若能加NULL判断则更好*m_data=‘\0’;}else{intlength=strlen(str);m_data=newchar[length+1];//若能加NULL判断则更好strcpy(m_data,str);}}//拷贝构造函数String::String(constString&other)//3分{intlength=strlen(other.m_data);m_data=newchar[length+1];//若能加NULL判断则更好strcpy(m_data,other.m_data);}//赋值函数String&String::operate=(constString&other)//13分{//(1)检查自赋值//4分if(this==&other)return*this;//(2)释放原有的内存资源//3分delete[]m_data;//(3)分配新的内存资源,并复制内容//3分intlength=strlen(other.m_data);m_data=newchar[length+1];//若能加NULL判断则更好strcpy(m_data,other.m_data);//(4)返回本对象的引用//3分return*this;}