首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp,通过把类Distance定义为类Point的友元类,来实现计算两点之间距离的功能。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)把类CDistance定义为类CPoi
使用VC6打开考生文件夹下的源程序文件modi3.cpp,通过把类Distance定义为类Point的友元类,来实现计算两点之间距离的功能。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)把类CDistance定义为类CPoi
admin
2021-05-06
67
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp,通过把类Distance定义为类Point的友元类,来实现计算两点之间距离的功能。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)把类CDistance定义为类CPoint的友元类。请在注释//********1********之后添加适当的语句。
(2)定义类CPoint的构造函数,完成给私有数据成员x和y的赋值,并且两个参数的缺省值都为0。请在注释//********2********之后添加适当的语句。
(3)完成类CDistance的成员函数length(Point&pPoint,Point&qPoint)~定义,并在其中计算点p、q之间的距离,并且返回结果。假设两点之间的距离distance=sqrt((pPoint.x - qPomt.x)*(pPoint.x - qPoint.x)+(pPoint.y -qPoint.y)*(pPoint.y - qPoint.y))。请在注释//********3********之后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
1 #include
2 #include
3 using namespace std;
4 class CPoint
5 {
6 public:
7 //********1********
8
9 //定义类Point的构造函数
10 //********2********
11
12 void display() { cout<<"x="<
13 private:
14 float x,y;
15 };
16 class CDistance
17 {
18 public:
19 float length(CPoint&p,CPoint&q);
20 };
21 float CDi stance::length(CPoint&pPoint,CPoint&qPoint)
22 {
213 //********3********
24
25 }
26 int main()
27 {
28 CPoint mPoint(10,10),nPoint(10,10);
29 mPoint.display();
30 nPoint.display();
31 CDistance len;
32 cout<
33 return 0;
34 }
选项
答案
(1)添加语句:friend C1ass CDistance ; (2)添加语句:CPoint(float a=0,float b=0){x=a;y=b;) (3)添加语句:return sqrt((pPoint.x—qPoint.x)*(pPoint.x—qPoint.x)+(pPoint.y—qPoint.y)*(pPoint.y—qPoint.y));
解析
程序当中定义了类CPoint和CDistance,CPoint类含有成员变量x和y,display()函数输出x和y的值;类CDistance只有成员函数length(CPoint&p,CPoint&q),且类CDistance为类CPoint的友元类。
[解题思路]
(1)第1个标识下补充定义类CDistance为类CPoint的友元类,声明友元类的格式为:friend<类名>;,故第1个标识下应添加“friend class CDistance;”。
(2)类CPoint的构造函数完成给私有数据成员x和y的初始化,两个参数的缺省值都为0,因此参数含有默认值0,故第2个标识下应添加“CPoint(float a=O,floatb=0){x=a;y=b;}”。
(3)类CDistance的成员函数length(CPoint&pPoint,CPoint&qPoint)返回点P、q之间的距离,可由公式distance=sqrt((pPoint.X-qPoint.X)*(pPoint.X-qPoint.x)+(pPoint.Y-qPoint.y)*(pPoint.y-qPoint.y))计算求得,第3个标识下应添加“return sqrt((pPoint.x-qPoint.x)*(pPoint.X-qPoint.x)+(pPoint.y-qPoint.y)*(pPoint.Y-qPoint.y));”。
转载请注明原文地址:https://kaotiyun.com/show/oJfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#includeusingnamespacestd;intmain(){inta[10];for(int*p=a;p
给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。例如,形参s所指的字符串为:ThisisaClanguageprogram.,函数的返回值为6。请在
有如下类声明:classTe{public:Te();//①Tete;//②Te*
若有以下定义,说法错误的是()。hata=100,*p=&a;
有如下类定义:classB{private:voidfun1(){}protected:voidfun2(){}public:voidfun3(){}
下列字符串中不能作为C++标识符使用的是
数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的
下列关于类定义的说法中,正确的是()。
有如下类定义:ciassA{char*a;public:A():a(0){}A(char*aa){∥把aa所指字符串拷贝到a所指向的存储空间a=___;strcpy(a,aa
下列符号中能够作为C++标识符的是()。
随机试题
在国民经济中具有特殊重要地位,其他部门对它依赖程度大,它对整个国民经济的发展关联度大的产业是()。
确诊肺癌的依据是
就出口商的收汇时间来说,假远期信用证相当于()。
风险往往意味着损失,高风险的股票可能给投资者带来较大损失。( )
某公司甲车间采用滚动预算方法编制制造费用预算。已知2015年分季度的制造费用预算如下表所示(其中间接材料费用忽略不计):2015年3月31日公司在编制2015年第二季度一2016年第一季度滚动预算时,发现未来的四个季度中将出现以下情况:(1)间接人工
可持续发展的基本原则主要体现在三个方面,下列不属于其中之一的是()。
集体谈判是指一名雇主、一些雇主或一个、几个雇主组织为一方,一个或数个工人为另一方,双方就确定工作条件和就业条件、调整雇主与工人之间的关系、调整雇主组织与工人组织之间的关系所进行的谈判。根据上述定义,下列不属于集体谈判的是()。
With950millionpeople,IndiarankssecondtoChinaamongthemostpopulouscountries.ButsinceChina【B1】______afamilyplan
早期的BASIC语言采用的哪种方法将源程序转换成机器语言?
GeorgeDanielslivesinLondon.Heisawatchmaker.Hisworkcontinuesthe(1)_______oftheEnglishwatchmakersofthe18than
最新回复
(
0
)