首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件 modi1.cpp,但该程序运行时有错,请改正main()函数 中的错误,使程序的输出结果如下: Constructor. Default constructor. Area is 12
使用VC6打开考生文件夹下的源程序文件 modi1.cpp,但该程序运行时有错,请改正main()函数 中的错误,使程序的输出结果如下: Constructor. Default constructor. Area is 12
admin
2018-10-23
58
问题
使用VC6打开考生文件夹下的源程序文件
modi1.cpp,但该程序运行时有错,请改正main()函数
中的错误,使程序的输出结果如下:
Constructor.
Default constructor.
Area is 12
Area is 0
Area is 12
注意:错误的语句在//******error******的下面,修改该语句即可。
1 #include<iostream.h>
2 class CRectangle
3 {
4 private:
5 double length,width;
6 public:
7 CRectangle()
8 {
9 cout<<’’Default constructor.\n’’;
10 }
11 CRectangle(double 1,double W)
12 {
13 length=1;width=w;
14 cout<<"Constructo.\n’’;
15 }
16 void Set(double 1,double w)
17 {
181 this->length=1;
19 this->width=w;
20 }
21 void GetArea()
22 {
23 cout<<’’Area is’’<<length*width<<end1;
24 }
25 };
26 void main()
27 {
28 CRectangle Rect1(3.0,4.0);
29 //******error******
30 CRectangle Rect2(1);
31 //******error******
32 CRectangle Rect3;
33 Rect1.GetArea();
34 //******error******
35 Rect2.Set(0);
36 Rect2.GetArea();
37 Rect3.GetArea();
38 }
选项
答案
(1)CRectangle Rect2; (2)CRectangle Rect3(Rect1); (3)Rect2.Set(0,0);
解析
程序中定义了类CRectangle,有length和width两个成员变量,两个构造函数,Set()成员函数和GetArea()成员函数,Set()成员函数可以改变length和width的值,GetArea()成员函数在屏幕上打印length和width的积。
(1)构造函数CRectangle()不带有参数,CRectangle(double 1,double w)带有2个参数,在创建对象时会自动调用构造函数,但是参数必须匹配,第1个标识下定义Rect2对象时,有一个参数,而类CRectangle()中并没有重载一个参数的构造函数,编译后出错,因此第1标识下应改为“CRectangle Rect2;”。
(2)Rect3.GetArea()输出的结果和Rect1.GetArea()输出结果一致,因此对象Rect3和对象Rect1两者具有相同的length和width值,除定义Rect3对象之外没有改变Rect31的length和width值,因此Rect3成员变量的初始化是通过拷贝构造函数类实现的,即用Rect1对象去初始化Rect3,因此第2个标识下应改为“CRectangle Rect3(Rect1);”。
(3)Rect2.GetArea()的输出结果为0,说明Rect2的成员变量length和width值至少一个为0,而Set()函数必须有两个参数,这里Rect2.Set(0)参数不匹配,应改为“Reet2.Set(0,0);”或者“Rect2.Set(0,5)”,两个参数当中至少一个为0即可。
转载请注明原文地址:https://kaotiyun.com/show/75Ap777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序main(){intn=9;while(n>6){n--;cout<<n<<endl;)}该程序段的输出结果是
下列程序的运行结果是main(){inta=2,c=5;cout<<"a="<<a<<"b="<<c<<endl;}
operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为______的。
如果类中的一个成员函数的定义实现在类内,则该函数系统自动默认为该类的______函数。
内联函数是通过______来实现的,因此内联函数是真正的函数。
数据库恢复是将数据库从______状态恢复到某一已知的正确状态。
数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为______。
下列有关数据库的叙述,正确的是()。
在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承private。已知有如下类定义:classBase{protected:voidfun(){}};classD
如果使用数组名称为函数参数,形实结合时,传递的是______。
随机试题
马斯洛认为人的需要有五种,这五种需要又分为缺失性需要和成长性需要两类。下列选项中,属于成长性需要的是()。
关于国际市场营业推广策略的制定,下列说法不正确的是()
去净龋坏组织的临床指标是
迅速出血后出现休克症状,表明至少已丢失全身总血量的
公路建筑限界的空间范围内不得有任何非公路设施的部件侵入()
某发行人拟于2008年对同一控制人控制下的其他企业甲、乙、丙、丁进行重组后申请IPO。重组方案和被重组方2007年主要财务数据如表3-1-2所示(单位:亿元)。发行人2007年资产总额10亿元,营业收入12亿元,利润总额3亿元;与被重组方没有可抵扣的关联交
经批准开业的旅馆,如有()等情况,应当在工商行政管理部门办理变更登记后3日内,向当地公安机关部门备案。
桑代克的三条主要的学习律是()
贾女士:在英国,根据长子继承权的法律,男人的第一个妻子生的第一个儿子有首先继承家庭财产的权利。陈先生:你说得不对。布朗公爵夫人就合法地继承了她父亲的全部财产。以下哪项对陈先生所作断定的评价最为恰当?
______takesLondonasthesettinginmostofhisnovels,
最新回复
(
0
)