首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正main()函数中的错误,使程序的输出结果如下: Constructor. Default constructor. Area is 12 Area
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正main()函数中的错误,使程序的输出结果如下: Constructor. Default constructor. Area is 12 Area
admin
2015-05-30
49
问题
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正main()函数中的错误,使程序的输出结果如下:
Constructor.
Default constructor.
Area is 12
Area is 0
Area is 12
注意:错误的语句在//********error********的下面,修改该语句即可。
1 #include
2 class CRectangle
3 {
4 private:
5 double length,width;
6 public:
7 CRectangle()
8 {
9 cout<<"Defaultconstructor.\n";
10 }
11 CRectangle(double 1,double w)
12 {
13 length=l ; width=w;
14 cout<<”Constructor.\n";
15 }
16 void Set(double 1,double w)
17 {
18 this->length=l;
19 this->width=w;
20 }
21 void GetArea()
22 {
23 cout<<"Area is"<
24 }
25 };
26 void main()
27 {
28 CRectangle Rectl(3.0,4.0);
29 //********error********
30 CRectangle Rect2(1);
31 //********error********
32 CRec七angle Rect3;
33 Rectl.GetArea();
34 //********error********
35 Rect2.Set(0);
36 Rect2.GetArea();
37 Rect3.GetArea();
38 }
选项
答案
(1)CRectangle Rect2; (2)CRectangle Rect3(Rectl); (3)Rect2.Set(0,0);
解析
程序中定义了类CRectangle,有length和width两个成员变量,两个构造函数,Set()成员函数和GetArea0成员函数,Set()成员函数可以改变length和width的值,GetArea()成员函数在屏幕上打印length和width的积。
[解题思路]
(1)构造函数CRectangle()不带有参数,CRectangle(double 1,double w)带有2个参数,在创建对象时会自动调用构造函数,但是参数必须匹配,第1个标识下定义Rect2对象时,有一个参数,而类CRectangle()中并没有重载一个参数的构造函数,编译后出错,因此第l标识下应改为“CRectangle Rect2;”。
(2)Rect3.GetArea()输出的结果和Rectl.GetArea0输出结果一致,因此对象Rect3和对象Rectl两者具有相同的length和width值,除定义Rect3对象之外没有改变Rect31的length和width值,因此Rect3成员变量的初始化是通过拷贝构造函数类实现的,即用Rectl对象去初始化Rect3,因此第2个标识下应改为“CRectangle Rect3(Rectl);”。
(3)Rect2.GetArea0的输出结果为0,说明Rect2的成员变量length和width值至少一个为0,而Set()函数必须有两个参数,这里Rect2.Set(0)参数不匹配,应改为“Rect2.Set(0,0);”或者“Rect2.Set(0,5)”,两个参数当中至少一个为0即可。
转载请注明原文地址:https://kaotiyun.com/show/3PNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
定义如下一维数组:inta[5],*p;,则下列描述错误的是()。
()是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。
定义类对象时自动调用【】为类对象中的数据成员赋初值。
若结构Arith中有一成员定义为char*op;,另有结构指针p定义为Arith*p=newArith.,则要访问p所指对象中的。p成员所指向的对象,应使用表达式【】。
下列程序的输出结果是【】。#include<iostream.h>#include<string.h>voidmain(){charb[30];strcpy(&b[0],"XY");
若类A和类B的定义如下:classA{public:inti,j;voidget();};classB:A{inti,j;protec
将小写字母n赋值给字符变量one_char,正确的操作是______。
类模板的使用实际上是将类模板实例化为一个具体的______。
已知在函数func()中语句this->ff=0;与语句ff=0;的效果完全相同。对于这一现象,下列表述中错误的是()。
有关析构函数的说法不正确的是()。
随机试题
治疗氨基甲酸酯类农药中毒首选
下列关于氧化磷酸化偶联机理的化学渗透学说,哪一项是错误的
避雷针与易燃油贮罐呼吸阀和氢气、天然气等罐体呼吸阀之间的空中距离:避雷针与呼吸阀的水平距离不应小于();避雷针尖高出呼吸阀不应小于()?
某项目厂区占地面积为80000平方米,其中:建(构)筑物占地面积为23500平方米,道路和广场占地面积25000平方米,露天堆场占地面积3500平方米,绿化面积为3000平方米,管线及管廊占地面积为5000平方米。经计算,该项目的场地利用系数为(
地基验槽时,需在基底进行轻型动力触探的部位有()。[2011年真题]
从1,2,3,4,5中任取2个不同的数,事件A=“取到的2个数之和为偶数”,事件B=“取到的2个数均为偶数”,则P(B|A)=()
治安管理处罚的种类,可划分为()。
飞轮效应指的是为了使静止的飞轮转动起来,一开始你必须使很大的力气,一圈一圈反复地推,每转一圈都很费力,但是每一圈的努力都不会白费,飞轮会转动得越来越快,达到某一临界点后,飞轮的重力和冲力会成为推动力的一部分。这时,你无须再费更大的力气,飞轮依旧会快速转动,
有甲、乙、丙三个口袋,其中甲袋装有1个红球,2个白球,2个黑球;乙袋装有2个红球,1个白球,2个黑球;丙袋装有2个红球,3个白球.现任取一袋,从中任取2个球,用X表示取到的红球数,Y表示取到的白球数,Z表示取到的黑球数,试求:(Ⅰ)(X,Y)的
A、Twoandahalfhours.B、Fourhours.C、Threeandahalfhours.D、Threehours.DW:Wecantaketheexpresstrainandsavehalfa
最新回复
(
0
)