首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正main()函数中的错误,使程序的输出结果如下: Constructor. Default constructor. Area is 12
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正main()函数中的错误,使程序的输出结果如下: Constructor. Default constructor. Area is 12
admin
2017-11-27
19
问题
使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正main()函数中的错误,使程序的输出结果如下:
Constructor.
Default constructor.
Area is 12
Area is 0
Area is 12
注意:错误的语句在//*****error******的下面,修改该语句即可。
#include
class CRectangle
{
private:
double length,width;
public:
CRectangle()
{
cout<<"Default
constructor.\n";
}
CRectangle(double 1,double w)
{
length=1;width=w;
cout<<"Constructor .\n";
}
void Set(double 1,double w)
{
this->length=1;
this->width=w;
}
void GetArea()
{
cout<<"Area is"<
width<
}
}
void main()
{
CRectangle Rect1(3.0,4.0);
//*****error******
CRectangle Rect2(1);
//*****error******
Rect1.GetArea();
//*****error******
Rect2.Set(0);
Rect2.GetArea();
Rect3.GetArea();
}
选项
答案
(1)CRectangle Rect2; (2)CRectangle Rect3(Rect1); (3)Rect2.Set(0,0);
解析
(1)构造函数CRectangle()不带有参数,CRectangle(double1,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)参数不匹配,应改为“Rect2.Set(0,0);”或者“Rect2.Set(0,5)”,两个参数当中至少一个为0即可。
转载请注明原文地址:https://kaotiyun.com/show/NDAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
派生类的构造函数的成员初始化列表中,不能包含()。
以下程序的执行结果是()。#include<iostream.h>template<classT>classSample{Tn;Public:Sample(Ti){n=i
下面对静态数据成员的描述中,正确的是()。
关于虚函数的描述中,正确的是()。
有以下程序main(){ int p[7]= {11,13,14,15,16,17,18},i=0,k=0; while(i<7 & & p[i] %2) { k= k+ p[i];i+ +;} cout<<k<<end1;}执行后输
设有二元关系R和三元关系S,下列运算中合法的是
在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
在下面函数的横线处填上适当的内容,使该函数能够利用递归方法求解字符串str的长度(不得使用系统提供的字符串处理函数)。intGetLen(char*str){if(______)return______;e
下列模式中,能够给出数据库物理存储结构与物理存取方法的是
下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是
随机试题
A.与肝炎后肝硬化有关B.与食物中黄曲霉素有关C.两者均有D.两者均无肝细胞癌的发病原因
A.排卵后B.初级卵泡C.次级卵泡D.成熟卵泡E.闭锁卵泡放射冠出现于
A.辣根过氧化物酶B.碱性磷酸酶C.脲酶D.葡萄糖氧化酶E.B一半乳糖苷酶从小牛肠黏膜或大肠杆菌中提取的酶是
主控项目检验内容中要用数据说明的包括()。
根据《证券公司证券资产管理业务试行办法》的规定,在集合资产管理计划中,客户主要享有的权利有()。
下列贷款重组方式中,不属于变更担保条件的是()。
()是主要用来运送汽车和集装箱的海运船舶。
“管理费用”账户的期末余额一般在借方。()
下列作品中不属于德拉克洛瓦作品的是()。
对大多数人来说,岗位是个人历练成长的基石,除了极少数的人能______创建自己的事业,大多数人都必须走一条相同的路,在岗位上磨练,依托______奠定未来事业的基础。依次填入划横线部分最恰当的一项是()。
最新回复
(
0
)