首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释//********1********后添加适当的语句。 (2)定义类的友元函数fu
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释//********1********后添加适当的语句。 (2)定义类的友元函数fu
admin
2017-03-22
46
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成构造函数的定义,请在注释//********1********后添加适当的语句。
(2)定义类的友元函数fun(),请在注释//********2********后添加适当的语句。
(3)定义类的友元函数main(),请在注释//********3********后添加适当的语句。
(4)补充语句,释放内存。请在注释//********4********后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
Class TestClass
{
public:
//********1********
{
data=d;
next=NULL;
}
void SetNext(TestClass*p)
{
next=p;
}
private:
int data;
TestClass*next;
//********2********
//********3
};
TestClass*fun(TestClass*h)
{
TestClass *t,*s,*u,*v;
s=h->next;
h->next=NULL;
while(s!=NULL)
{
for(t=s,v=h;v!=NULL
&&v->data < t->data;u=v,v=
v->next);
s=s一>next;
if(v==h)
h=t;
else
u->next=v;
t->next=v;
}
return h;
}
Void main()
{
TestClass*h=NULL;
TestClass*q=NULL;
do{
int data;
cout<<"please input a
number,and end with 0"<
cin>>data;
if(data==0)break;
TestClass*p = new
TestClass(data);
if(h==NULL)
{
h=q=p;
}
else
{
q->SetNext(p);
q=p;
}
}while(1);
h=fun(h);
for(;h!=NULL;)
{
q=h->next;
cout<
data<<" "<
delete h;
//********4********
}
return;
}
选项
答案
(1)添加语句:TestClass(int d) (2)添加语句: friend TestClass*fun(TestClass*); (3)添加语句:friend void main(); (4)添加语句:h=q;
解析
(1)题目1要求“完成构造函数的定义”。构造函数是一种特殊的成员函数,它的名字必须与类同名,所以这里的构造函数名字是TestClass。根据构造函数内的“data=d;”语句,知道构造函数TestClass中参数d为int型,即这里补全“TestClass(int d)”。
(2)题目2要求“定义类的友元函数fun()”。在C++中,如果在本类以外的其它地方定义了一个函数,在类体中是用friend对该函数进行声明的,此函数称为本类的友元函数,并且能够调用本类中的成员变量。程序中fun()在类TestClass以外的地方定义的,为了其实现对类TestClass中程序变量的调用,在类TestClass中补全“friend TestClass*fun(TestClass*);”。
(3)题目3要求“定义类的友元函数main()。”同(2),这里补全“friend void main();”。
(4)题目4要求“补充语句,释放内存。”为了防止内存泄漏,在指针使用后要将其释放。第四个标识前面的“delete h;”语句已经将指针h释放了,所以要释放指针q,只要将其指向h就可以了,即“h=q;”。
转载请注明原文地址:https://kaotiyun.com/show/E2Ap777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是#include<iostream.h>voidmain(){int*p,*q,a,b;p=&a;
数据库管理系统中负责数据模式定义的语言是()。
在C++语言中,形参的缺省存储类型是()。
在最坏情况下,冒泡排序所需要的比较次数为【 】。
数据库技术的根本目标是要解决数据的( )。
用单链表表示的链式队列的队头在链表的( )位置。
首先访问该结点,然后访问结点的左子树,最后访问结点的右子树,这种遍历方式称为( )。
若有以下定义和语句 int a=4.b=3.* p, * q, * w; p=&a;q=& b; w=q;q=NULL; 则以下选项中错误的语句是
以下选项中合法的用户标识符是
A、 B、 C、 D、 A本段程序实现从键盘接收一段字符串,并计算字符串的长度,cin输入流对象会将空白符、回车符、tab键作为终止标志,所以输入Ahcdefgabcd得到的字符串长度为7。
随机试题
动物饥饿后摄食,其肝细胞主要糖代谢途径
患者,女性,26岁,已婚,尿频、尿痛2d,排尿终末血尿,不伴发热。可能的病变部位在
药品委托生产的委托方应当严格执行质量协议,有效控制生产过程,确保委托生产药品及其生产符合注册和《药品生产质量管理规范》的要求。()
张婶借李婶的缝纫机做衣服,一直未还。李婶平时不用缝纫机,也不好意思催张婶还,便对张婶说:我把缝纫机便宜卖给你吧,一百元。张婶说:就这么说定了,明天我就把钱给你。当天下午,李婶反悔了,请求张婶返还缝纫机,张婶说缝纫机已经是她的了。下列说法正确的是哪项?(
()总执天道;()执掌天地经纬、日月星辰和四时气候;()统御众星;()执掌阴阳生育、万物之美和大地山河之秀。
阅读下列材料,完成教学设计。材料1:《义务教育化学课程标准(2011年版)》的课程内容:“认识常见金属的主要化学性质。”材料2:义务教育教科书《化学》(九年级上册)的目录(略)。材料3:某教师关于“金属的化学性质”的教学设计材
某检修工作由李和王二人负责,两人如一同工作4天,剩下工作量李需要6天,或王需要3天完成。现李和王共同工作了5天,则剩下的工作李单独检修还需几天完成?()
观察到某个群体的每一个个体都可能具有某一个特性不能轻易地得出群体的所有成员都有可能具有这一特性的结论。道理很简单,每个进场的网球选手都有可能赢这场比赛,但不可能所有进场的选手都能赢这场比赛。以下哪项中所犯的逻辑错误和上述论证中所描述的错误最为类似?
Onedayamancametoahospital."What’sthematterwithyou?"askedthedoctor."IhaveaheadacheeverymorningwhenIgetup
ThecitizensofFranceareonceagaintakingapastingontheop-edpages.Theirfailingthistimeisnotthattheyarecheese-e
最新回复
(
0
)