Description

定义一个平面上的点类Point,其中设置成员函数distance1求当前对象与另一点的距离,并设置友员函数distance2也完成相同的工作。
请在划横线的部分填上需要的成份,使程序能正确运行,得到要求的输出结果。
请提交begin到end部分的代码。
//************* begin *****************
#include<iostream>
#include<cmath>
#include <iomanip>
using namespace std;
class CPoint
{
private:
double x;  // 横坐标
double y;  // 纵坐标
public:
CPoint(double xx=0,double yy=0):x(xx),y(yy) {}
double distance1(CPoint &);
____(1)_____ double distance2(CPoint &, CPoint &);
};
double CPoint::distance1(CPoint &p)
{
double dx,dy;
dx=_____(2)_____;
dy=_____(3)_____;
return sqrt(dx*dx+dy*dy);
}
double distance2(CPoint &p1,CPoint &p2)
{
double dx,dy;
dx=_____(4)_____;
dy=_____(5)_____;
return sqrt(dx*dx+dy*dy);
}
//************* begin *****************
int main()
{
double px1, py1, px2, py2;
cin>>px1>>py1>>px2>>py2;
CPoint p1(px1, py1), p2(px2, py2);
cout <<setiosflags(ios::fixed)<<setprecision(2);
cout<<"1. "<<p1.distance1(p2)<<endl;
cout<<"2. "<<distance2(p1,p2)<<endl;
return 0;
}

Input

四个以空格隔开的小数,表示平面中两点的横纵坐标

Output

两次输出两点间的距离,分别用成员函数和友元函数完成计算

Sample Input

2.5 4.3 7.8 6.7

Sample Output

1. 5.82
2. 5.82
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
class Point;
class CPoint
{
private:double x;double y;
public:CPoint(double xx=0,double yy=0):x(xx),y(yy){}double distance1(CPoint &);friend double distance2(CPoint &,CPoint&);
};
double CPoint::distance1(CPoint &p)
{double dx,dy;dx=p.x-x;dy=p.y-y;return sqrt(dx*dx+dy*dy);
}
double distance2(CPoint &p1,CPoint&p2)
{double dx,dy;dx=p2.x-p1.x;dy=p2.y-p1.y;return sqrt(dx*dx+dy*dy);
}
int main()
{double px1, py1, px2, py2;cin>>px1>>py1>>px2>>py2;CPoint p1(px1, py1), p2(px2, py2);cout <<setiosflags(ios::fixed)<<setprecision(2);cout<<"1. "<<p1.distance1(p2)<<endl;cout<<"2. "<<distance2(p1,p2)<<endl;return 0;
}

[YTU]_2632 ( B2 友元光顾)相关推荐

  1. [YTU]_2619 (B 友元类-计算两点间距离)

    题目描述 类Distance定义为类Point的友元类来实现计算两点之间距离的功能. Point类中有两个私有数据成员X和Y来表示点的两个坐标(横坐标和纵坐标), 成员函数需要自己定义. 主程序输入两 ...

  2. [YTU]_2435 ( C++ 习题 输出日期时间--友元函数)

    题目描述 设计一个日期类和时间类,编写display函数用于显示日期和时间.要求:display函数作为类外的普通函数,分别在Time和Date类中将display声明为友元函数.在主函数中调用dis ...

  3. 类模板,多种类型的类模板,自定义类模板,类模板的默认类型,数组的模板实现,友元和类模板,友元函数,类模板与静态变量,类模板与普通类之间互相继承,类模板作为模板参数,类嵌套,类模板嵌套,类包装器

     1.第一个最简单的类模板案例 #include "mainwindow.h" #include <QApplication> #include <QPush ...

  4. C++:友元(非成员友元函数、成员友元函数、友元类)

    3.8  友元:友元函数和友元类 友元函数 :既可以是不属于任何类的非成员函数,也可以是另一个类的成员函数,统称为友元函数.友元函数不是当前类的成员函数,而是独立于类的外部函数,但它可以访问该类所有的 ...

  5. 【C++grammar】析构、友元、拷贝构造函数、深浅拷贝

    目录 1.Destructor(析构函数) 在堆和栈(函数作用域与内嵌作用域)上分别创建Employee对象,观察析构函数的行为 2.Friend(友元) 1.为何需要友元 2.友元函数和友元类 3. ...

  6. a1a2b1b2c1c2语言级别区分,西班牙语 | 西班牙语的等级是怎么划分的?(A1/A2、B1/B2、C1/C2)...

    西班牙语的等级是怎么划分的? 首先,衡量西语水平的等级不只是一种,比如我们国内的西语专业,会用专四.专八来考察学生的西语水平. 而我们常说的西语A2,西语B2,实际上采用的是欧洲语言共同参考框架(Ma ...

  7. c++ 基础复习3 - 友元和继承

    静态成员 静态成员是指声明为static的类成员在类的范围内所有对象共享某个数据. 静态数据成员的定义与一般数据成员相似,但前面要加上static关键词. 静态数据成员的初始化与一般数据成员不同,静态 ...

  8. C++ 笔记(30)— 友元函数与友元类

    我们知道类的私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行.这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦. ...

  9. C++ primer 第七章之 友元函数与友元类

    1.为什么需要友元函数?  类具有封装和信息隐藏的特性: 只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的 ; 非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公 ...

最新文章

  1. opengl 大作业_大学新生作业10米长!网友:确认过眼神,是我画不出的十米长卷……...
  2. 【自动驾驶】11.百度Apollo对ROS的优化
  3. presto安装及可视化webui安装、配置
  4. leetcode-19-删除链表的倒数第N个节点
  5. 如何做个好员工(转载)
  6. 最大流,最小费用最大流:解析 + 各种板子
  7. 牛客题霸 [二叉树的最大深度]C++题解/答案
  8. [No000014A]Linux简介与shell编程
  9. scss、sass 和 css 的区别
  10. linux 该用户组id,linux用户和用户组的一些基本知识
  11. eclipse中open resource.不显示class文件
  12. iOS开发之iPhone手机轻松获取UDID的六种方式
  13. 新手指南: 手把手教你安装 Ubuntu 和 Fedora
  14. 关于for循环的javascript习题
  15. C语言项目 ---- 纸牌游戏(详细讲解 + 全部代码 + 运行图片)
  16. Tomcat 配置文件详解
  17. 批量图片格式转化——gif转换为jpg、png
  18. 网页简单轮播图的实现
  19. [译]R语言——Shiny框架之入门(一):Shiny应用的基本构成
  20. 寒假ACM假期总结 (7)

热门文章

  1. MvvmLight:Command
  2. JavaScript中的私有成员
  3. Android下NDK开发环境搭建
  4. EChart.js 简单入门
  5. nginx配置技巧汇总
  6. Oracle 11g R2 RAC 高可用连接特性
  7. 性能测试、负载测试以及压力测试
  8. Redis键值相关命令
  9. My Toolkit of Node.js
  10. [leetcode] Pow(x, n)