首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程文件proj3。本题创建一个小型字符串类,字符串长度不超过100。程序文件包括proj3.h.proj3.cpp、writeToFile.obj。 补充完成proj3.h,重载复合赋值运算符+=
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程文件proj3。本题创建一个小型字符串类,字符串长度不超过100。程序文件包括proj3.h.proj3.cpp、writeToFile.obj。 补充完成proj3.h,重载复合赋值运算符+=
admin
2015-06-27
32
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程文件proj3。本题创建一个小型字符串类,字符串长度不超过100。程序文件包括proj3.h.proj3.cpp、writeToFile.obj。
补充完成proj3.h,重载复合赋值运算符+=。
要求:
补充编制的内容写在“//**********333**********”与“//**********666**********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFih已经编译为obj文件,并且在本程序中调用。
//proj3.h
#include
#include
usingnamespacestd;
classMiniString
{public:
friendostream&operator<<(ostream&output,constMiniString&s)
//重栽流插入运算符
{output<
}
friendistream&operator>>(istream&input,MiniString&s)
//重载流提取运算符
{chartemp[i00];//用于输入的临时数组
temp[0]=’\0’;
input>>setw(100)>>temp;
intinLen=strlenktemp);//输入字符串长度
if(inLen!=0)
{
s.length=inLen;//赋长度
if(s.sPtr!=0)delete[]s.sPtr;
//避免内存泄漏
s.sPtr=newchar[s.length+1];
strcpy(s.sPtr,temp);
//如果s不是空指针,则复制内容
}
elses.sPtr[0]=’\0’;
//如果s是空指针,则为空字符串
returninput;
}
MiniString(constchar*S="":length((s!=0)?strlen(S):0)(setString(S);}
~MiniString()fdelete[]sPtr;)//析构函数
//*************333***********
//+=运算符重载
//*************666***********
private:
intlength;//字符串长度
char*sPtr;//指向字符串起始位置
voidsetString(constchar*string2
}//辅助函数
{
sPtr=newchar[length+1];
//分配内存
if(string2!=0)
strcpy(sPtr,string2);
//如果string2不是空指针,则复制内容
elsesPtr[0]=’\0’;
//如果string2是空指针,则为空字符串
}
};
//proj3.cpp
#include
#include
usingnamespacestd;
#include"proj3.h"
intmain()
{
MiniStringstrl("World"),str2("Hello");
voidwriteToFile(char*);
str2+=strl;//使用重载的+=运算符
cout<
writeToFile("");
return0;
}
选项
答案
MiniString& operator+=(const MiniString& s) { char *pt = new char [length+1]; strcpy(pt, sPtr); int blength = length; length += s.length; delete []sPtr; sPtr = new char[length+1]; strcpy(sPtr,pt); delete []pt; for (int i = 0; i < length; ++i) sPtr[blength+i] = s.sPtr[i]; return *this; }
解析
主要考查考生对运算符重载的掌握,因为有动态数组,所以要使用new语句来重新分配空间。
转载请注明原文地址:https://kaotiyun.com/show/oBBD777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
初等教育机构的教育对象主要是
凯恩斯货币理论认为货币需求量与货币和债券的预期收益率有关。()
美联储通过公开市场操作主要调整的是()。
法律效力与法律实效有联系,但不是同一概念,下列哪一或哪些选项体现了两者的区别?()
关于法治问题有如下观点:①法治与法制没有区别;②法治强调法律在社会生活中的至高权威;③中国建立法治国家,要将依法治国和以德治国结合起来;④法治意味着法律调整的正当性。下列选项中,表述不正确的观点是
事物内部的肯定方面和否定方面的对立统一运动,从表现形式上看
设f(χ)为[-a,a]上的连续的偶函数且f(χ)>0,令F(χ)=∫-aa|χ-t|f(t)dt..(Ⅰ)证明:F′(χ)单调增加.(Ⅱ)当χ取何值时,F(χ)取最小值?(Ⅲ)当F(χ)的最小值为f(a)-a2-1时,求函数f(χ).
在编写Java程序的时候,如果不为类的成员变量定义初始值,Java会给它们设置默认值,下列说法中不正确的是()。
对于循环队列,下列叙述中正确的是()。
下列程序从标准输入设备---键盘读入一个字符,然后输出到屏幕。要想完成此功能,画线处应该填入的语句为()。importjava.io.*;publicclassTest{publicstaticvoidmain(Stri
随机试题
编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。注意:部分源程序给出如下.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句
下列说法中错误的是______。
A.郄穴B.经穴C.合穴D.原穴脘腹隐痛,喜温喜按,病程久者,治宜选用
嘌呤核苷酸从头合成时GMP的C-2氨基来自
下列关于根尖1/3根折的描述,不正确的是
A.脾虚证B.肾虚证C.血瘀证D.血热证E.气滞证固本止崩汤治疗崩漏的适应证候是
我国现行的《会计法》规定的内容有()。
(2016)结合“二孩”政策的全面实施,请简述教育优化人口的功能。
《洪湖赤卫队》中的洪湖现在位于()省。
交通肇事致一人以上重伤,负事故全部或者主要责任,并具有哪些情形的以交通肇事罪定罪处罚?()
最新回复
(
0
)