首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹pmj1下的工程pmjl。其中有线段类Line的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: End point 1=(1,8),
请使用VC6或使用【答题】菜单打开考生文件夹pmj1下的工程pmjl。其中有线段类Line的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: End point 1=(1,8),
admin
2016-06-12
41
问题
请使用VC6或使用【答题】菜单打开考生文件夹pmj1下的工程pmjl。其中有线段类Line的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:
End point 1=(1,8),End point 2=(5,2),lenth=7.2111。
注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。
#include
#include
USing namespace std;
class Line;
double length(Line);
class Line{ //线段类
double x1,y1;//线段端点1
double x2,y2;//线段端点2
public:
//ERROR**********found**********
Line(double x1,double y1,double x2,double y2)const{
this一>x1=x1 ;
this一>y1=y1;
this一>x2=x2;
this一>y2=y2;
}
double getXl()const{return x1;}
double getYl()const{return y1;)
double getX2()const{return x2;}
double getY2()const{return y2;}
void show()const{
cout<<”End point l=(“<
cout<<”),End point 2=(”<
<<“,”<
//ERROR**********found**********
cout<<“),length=”<
(this)
<<“o”<
}
};
double length(Line 1){
//ERROR**********found**********
return sqrt((1.x1一1.x2)*(1.x1—
1.x2)+(1.y1一1.y2)*(1.y1一1.y2));
}
int main(){
Line r1(1.0,8.0,5.0,2.0);
r1.show();
return 0;
}
选项
答案
(1)Line(double xl,double yl,double x2,double y2){ (2)cout<<”),length=”<
解析
本题考查Line类,其中涉及构造函数、this指针和cons1函数。判断一个函数是否为const函数,就要观察该函数体内是否有变量值发生改变,若有变量值发生改变,则该函数不是const函数。一般构造函数不能用const,因为要给私有成员赋初始值。类的私有成员不能被类外函数调用,只能通过成员函数调用。
【解题思路】
(1)主要考查考生对构造函数的掌握,构造函数要给私有成员赋初始值,因此不能使用const来限制。
(2)主要考查考生对this指针的掌握,由函数length的声明double length(Iine);可知,length函数的形参是Line类,在void show()const函数里,this指针指向的是当前Line类,因此可以用*this表示当前Line类。
(3)主要考查考生对成员函数的掌握,length函数是类外函数,不能直接调用类的私有成员,因此要通过成员函数取得对应的值。
【解题宝典】
this是指向自身对象的指针,它是一个指针类型,因此要使用标识符“*”来取出它所指向的值。
转载请注明原文地址:https://jikaoti.com/ti/ApE0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列字符串中可以用作C++语言标识符的是
以下程序的输出结果是【】。#include<iostream.h>voidmain(){inta=0;a+=(a=8);cout<<a;
下列关于构造函数的描述中,错误的是()。
若有以下程序:#include<iostream>usingnamespacestd;template<classT>Tmin(Tx,Ty){if(x<y)retur
下列关于单目运算符++、--的叙述中,正确的是()。
检查软件产品是否符合需求定义的过程称为()。
若有以下程序:#include<iostream>usingnamespacestd;classBase{private:inta,b;public:Base(intx
以于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是()。classMyClass{public:MyClass(intx){n=x;
下列运算符中哪些是不能够被重载的?
随机试题
35岁经产妇,孕37周,双胎分娩两个男婴后检查,一个胎盘及一层绒毛膜,两层羊膜,试问受精卵复制及分裂发生在受精后
A、心B、脾C、肾D、肝E、肺其华在毛的是()。
事故保安电源可以是()。
抗震规范对多层砌体房屋抗震横墙的最大间距作出了规定,例如:对黏土砖房。7度设防时,按不同楼、屋盖类别分别规定抗震横墙的最大间距为15m,11m和9m。其中11m适用于()。
加快的成倍节拍流水施工的特点是()。
根据不同的工程类别,分别以其建筑、安装工程费乘以建筑、安装工程保险费率计算?则下列说法正确的有()。
根据我国现行宪法的规定,农村集体经济组织实行的经营体制是()。
“奶奶”这个词中,第一个汉字实际读音的调值数应该是___________。(北京大学2016)
数据库系统中完成查询操作使用的语言是()。
Althoughcollegeeducationisquiteexpensiveitisimportanttoachievecompetitivejobswithgoodpays.Hence,manystudentsw
最新回复
(
0
)