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

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

标准文案C/C++及数据结构笔试题集锦一:已知类String的原型为:classString{public:String(constchar*str=NULL);//普通构造函数//拷贝构造函数String(constString?);//析构函数~String(void);//赋值构造函数String&operator=(constString?);private:用于保存字符串char*m_data;//};String请编写个函数。的上述4答案:1:版本//String的析构函数String::~String(void)//3分{delete[]m_data;大全.标准文案//由于m_data是内部数据类型,也可以写成deletem_data;}String::String(constchar*str){if(str==NULL){m_data=newchar[1];//若能加NULL判断则更好*m_data=‘{post.content}';}else{intlength=strlen(str);m_data=newchar[length+1];//若能加NULL判断则更好strcpy(m_data,str);}}//拷贝构造函数String::String(constString&other){intlength=strlen(other.m_data);m_data=newchar[length+1];//若能加NULL判断则更好strcpy(m_data,other.m_data);大全.标准文案}//赋值函数String&String:operate=(constString&other){//(1)检查自赋值if(this==&other)return*this;//(2)释放原有的内存资源delete[]m_data;//(3)分配新的内存资源,并复制内容intlength=strlen(other.m_data);m_data=newchar[length+1];//若能加NULL判断则更好strcpy(m_data,other.m_data);//(4)返回本对象的引用return*this;}版本2String::String(constchar*str){if(str){大全.标准文案memset(m_data,0,strlen(m_data));strcpy(m_data,str);}else*m_data=0;}String::String(constString?){strcpy(m_data,copy.m_data);}String&String:operator=(constString?){if(this==?)retrun*this;strcpy(m_data,copy.m_data);return*this;}版本3String::String(constchar*str){if(m_data)delete[]m_data;if(str){大全.标准文案m_data=newchar[strlen(str)];memset(m_data,0,strlen(m_data));strcpy(m_data,str);}else*m_data=0;}String::String(constString?){if(m_data)delete[]m_data;m_data=newchar[strlen(copy.m_data+1)]strcpy(m_data,copy.m_data);}String&String:operator=(constString?){if(this==?)retrun*this;if(m_data)delete[]m_data;m_data=newchar[strlen(copy.m_data+1)]strcpy(m_data,copy.m_data);return*this;大全.标准文案}~String::String(void){if(m_data)delete[]m_data;}二:改错题,只能在原来的基础上增加代码,不能删除代码#include#includevoidfoo(intage,char*b){b=(char*)malloc(64);sprintf(b,YourAgeis%d,age);}intmain(){char*f;foo(23,f);printf(%s\n,f);}大全.标准文案答案版本1#include#includevoidfoo(intage,char**b){*b=(char*)malloc(64);sprintf(*b,YourAgeis%d,age);}intmain(){char**f;foo(23,f);printf(%s\n