首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释//********1********后添加适当的语句。 (2)定义类的友元函数fu
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成构造函数的定义,请在注释//********1********后添加适当的语句。 (2)定义类的友元函数fu
admin
2017-03-22
35
问题
使用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全国计算机二级
相关试题推荐
12.请将下面的程序补充完整,使得程序输出“飘是张娜的书”。#includeusingnamespacestdclassBook{public:Book(char*str)|strcpy(title,str);
有如下程序:#inCludeusingnameSpacestd;ClassA{public:A(inti=0):r1(i){}voidplint(){cout
下列控制格式输入输出的操作符中,能够设置浮点数精度的是()。
为 int *p; 动态分配内存空间并且赋初始值0的语句是【 】。
下列类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。class myClass{private:intdata;public:myClass(in
在软件开发中,下面任务不属于设计阶段的是
在C++语言中,形参的缺省存储类型是()。
数据库管理最本质的特点是实现数据的共享。为了实现数据的共享,保证数据的独立性、完整性和安全性,需要有一组软件来管理数据库中的数据,处理用户对数据库的访问,这组软件称为【 】。
设有50行60列的二维数组A[50][60],其元素长度为4字节,按行优先顺序存储,基地址为200,则元素A[18][25]的存储地址为( )。
插入排序算法的主要思想:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。Insert类的成员函数sort()实现了插入排序算法,请填空。classInsert{public:Insert(int*b0,
随机试题
X线照片上两相邻组织影像界线的清楚程度称
当归补血汤主治中不应包括下列哪-项
中国人张某在法国完成一项产品发明。2002年12月3日,张某在一次全国性学术团体组织召开的学术研讨会上介绍了他的这项发明成果。2003年6月16日,出席过这次研讨会的某研究所工程师王某,将这项成果作为他自己的非职务发明,向中国专利局提出专利申请。2003年
职业安全健康管理体系里的改进措施主要包括()和()两个方面。
焊前对焊工重点审查的项目是()。
)辅料跟单跟单员王平在收到外商意见的同时,还收到采购单中规定的“YKYZIPPER”供应商联系地址和方法,请阅读以下所给有关“YKYzlIPPER”资料,计算并回答问题。2.在购买拉链时,必须注明哪些重要的信息资料?(要求用中文表述1)(4分)
根据《上市公司信息披露管理办法》,下列哪些内容应同时记载于年度报告和中期报告?()Ⅰ.公司股票、债券发行及变动情况,股东总数,公司前10大股东持股情况Ⅱ.持股5%以上股东的情况Ⅲ.管理层讨论与分析Ⅳ.董事会报告Ⅴ.财务会计报告
下列法律事实中,属于法律事件的是()。
下列关于赋值运算符“=”重载的叙述中,正确的是()。
Anewstudyfoundthatinner-citykidslivinginneighborhoodswithmoregreenspacegainedabout13%lessweightoveratwo-yea
最新回复
(
0
)