首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj1,其中有线段类Line的定义。程序中位于每个“//ERROR **** found ****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: End point 1=(1,8),End po
请打开考生文件夹下的解决方案文件proj1,其中有线段类Line的定义。程序中位于每个“//ERROR **** found ****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: End point 1=(1,8),End po
admin
2020-04-07
410
问题
请打开考生文件夹下的解决方案文件proj1,其中有线段类Line的定义。程序中位于每个“//ERROR **** found ****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:
End point 1=(1,8),End point 2=(5,2),length=7.2111。
注意:只修改每个“//ERROR **** found ****”下的那一行,不要改动程序中的其他内容。
#include<iostream>
#include<cmath>
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 getX1()const{returnx1;}
double getY1()const{reLurny1;}
double getX2()const{returnx2;}
double getY2()const{returny2;}
void show()const{
cout<<"End point 1=("<<x1<<","<<y1;
cout<<"),End point 2=("<<x2<<","<<y2;
//ERROR ******* found *******
cout<<"),length="<<length(this)
<<"。"<<endl;
}
};
double length(Line 1){
//ERROR ******* found *******
return sqrt((1.x1一1.x2)
*
(1.xl—1.x2)+(1.yl一1.y2)
*
(1.y1一1.y2));
}
int main() {
Line rl(1.0,8.0,5.0,2.0);
r1.show();
return 0;
}
选项
答案
(1)Line(double x1,double y1,double x2,double y2) { (2)cout<<"),length="<<length(* this)<<"。"<<endl; (3)return sqrt((1.getX1()一1.getX2())*(1.getX1()一1.getX2())+(1.getY1()一1.getY2())*(1.getY1()一1.getY2()));
解析
(1)主要考查考生对构造函数的掌握,构造函数要给私有成员赋初始值,因此不能使用const来限制。
(2)主要考查考生对this指针的掌握,由函数length的声明double length(Line);可知,length函数的形参是I,ine类,在void show()const函数里,this指针指向的是当前Line类,因此可以用* this表示当前Line类。
(3)主要考查考生对成员函数的掌握,length函数是类外函数,不能直接调用类的私有成员,因此要通过成员函数取得对应的值。
转载请注明原文地址:https://www.kaotiyun.com/show/ww8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在设计程序时,应采纳的原则之一是( )。
假定动态分配一个类型为Worker的具有n个元素的数组,并由P指向这个动态数组,如果要释放这个数组,则使用的语句为【】。
如下程序声明了一个使用两个通用数据类型的模板类dataClass,其中构造函数用于初始化两个数据成员,成员函数show用于输出两个数据成员的数值。#include<iostream>usingnamespaeestd;_
下列对模板的声明中,正确的是()。
程序的结果为【】。 #include”iostream.h” template<typenameT> Ttotal(T*data) { Ts=0; while(*data) {
非成员函数应声明为类的【】函数才能访问这个类的private成员。
执行下列程序的输出结果是______:#include<iostream>usingnamespacestd;classTestClassl{public:voidfunl(){cout<<"Te
在C++中,编译时的多态性是通过模板或函数【12】实现的。
下列语句的作用是计算正整数n的各位数字之和,例如:n=123,sum=1+2+3。请将下列语句补充完整。Do{Sum+=【7】:n=n/10;)while(n!=0)
有如下类定义:classTest{chara:constcharb:public:Test(charc){a=c;b=c;}//第1行voidf(chara)const{this.>a=a;}
随机试题
在马克思主义发展史上,第一次把解放生产力、发展生产力作为社会主义本质规定的是()
当颈部发现原发病灶不明的转移癌时,应首先仔细检查
彩色多普勒技术和超声负荷试验并用可以()。
检测限与定量限的区别在于
商业银行应与借款人在借款合同中约定,出现()情形的,借款人应承担的违约责任和贷款人可采取的措施。
在海上货物运输保险中,保险人承保的风险主要分为()。
根据专家推断,2006年内人民币将升值3%左右,按4月5日外汇市场美元兑人民币汇率的中间价推算,人民币对美元的汇率到2006年年底将跌至多少?( )4月5日人民币对美元汇率的收盘价是( ),创汇改以来的新高。
AprovenmethodforeffectivetextbookreadingistheSQ3RmethoddevelopedbyFrancisRobinson.Thefirststepistosurvey(th
网络连接和IP地址分配如下图所示,并且配置了RIPv2路由协议。如果在路由器R1上运行命令:R1#show ip route,下面4条显示信息中正确的是(52)。
WhatdoyouknowabouttheRiverNile?
最新回复
(
0
)