关闭

OJ嘻唰唰之友元类(1)计算两点之间的距离

753人阅读 评论(0) 收藏 举报
分类:
问题及代码:
/*
*Copyright(c)2014,烟台大学计算学院
*All  rights reserved.
*文件名称:test.cpp
*作者:陈银丽
*完成日期:2015年7月7日
*版本号:v1.0
*
*问题描述:类Distance定义为类Point的友元类来实现计算两点之间距离的功能。Point类中有两个私有数据成员X和Y来表示点的两个坐标(
横坐标和纵坐标),成员函数需要自己定义。主程序输入两个Point点的坐标,计算两个点之间的距离。
类Distance的声明如下:
class Distance
{ public:
float Dis(Point & p,Point & q); 
};

程序主函数如下:
int main()
{
float x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
Point p(x1,y1), q(x2,y2);
cout<<setiosflags(ios::fixed);
cout<<setprecision(2);
Distance d;
cout<<d.Dis(p,q)<<endl;
return 0; 
}

要求:将整个程序补充完整,即添加Point类,并完成Distance类成员函数的类外定义。
*输入描述:
        
           
*程序输出:
*/
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
class Point;      //对Point的声明,它是对Point的预引用
class Distance
{
public:
        float Dis(Point & p,Point & q);
};
class Point
{
public:
    Point(double a=0,double b=0);
    double getX();
    double getY();
private:
    double X;
    double Y;
    friend Distance;

};

Point::Point(double a,double b)
{
    X=a;
    Y=b;
}
double Point::getX()
{
    return X;
}
double Point::getY()
{
    return Y;
}
float Distance::Dis(Point & p,Point &q)
{
    return sqrt((p.getX()-q.getX())*(p.getX()-q.getX())+(p.getY()-q.getY())*(p.getY()-q.getY()));
}
int main()
{
float x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
Point p(x1,y1), q(x2,y2);
cout<<setiosflags(ios::fixed);
cout<<setprecision(2);
Distance d;
cout<<d.Dis(p,q)<<endl;
return 0;
}

运行结果:


知识点总结:友元包括友元类和友元函数。友元函数可以访问本类中的私有函数。友元函数可以是一般函数即非成员函数,也可以是另一个类中的成员函数。

还需要注意类的提前引用声明

学习心得:概念来源于书本,实践使得概念化的东西更容易理解

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

C++:友元1(两点之间的距离)

C++:友元1(两点之间的距离)题目描述:Description定义一个二维平面中的点(point)类,类中的数据成员为点的坐标,然后定义友元函数dist()用来计算两点之间的距离。将下面的程序1 和...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016-01-08 18:49
  • 1064

hdoj 2001 计算两点间的距离 java代码编写 math类中的方法详细介绍

这个题目还是挺简单的,下面我主要介绍一下java中关于math类的中的一些方法 import java.util.Scanner; public class Main {     pub...
  • u012978884
  • u012978884
  • 2014-03-12 09:14
  • 1930

百度地图如何计算两点之间距离

路线规划提供了获取路线距离的方法,见MKRoutePlan 类的 getDistance 方法。 如果是计算任意两点的距离,自2.0.0版本开始,Android SDK为开发者提供了计算距离的接...
  • forlong401
  • forlong401
  • 2013-05-08 23:39
  • 40945

友元机制计算两点之间的距离

  • 2017-11-27 23:35
  • 1KB
  • 下载

YTU-OJ-友元类-计算两点间距离

Problem D: B 友元类-计算两点间距离 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 225  Solved: 79 [Submit]...
  • MIKASA3
  • MIKASA3
  • 2015-05-16 15:27
  • 719

第十六周oj刷题——Problem D: B 友元类-计算两点间距离

Description 类Distance定义为类Point的友元类来实现计算两点之间距离的功能。 Point类中有两个私有数据成员X和Y来表示点的两个坐标(横坐标和纵坐标), 成员函数需要自...
  • nufangdongde
  • nufangdongde
  • 2015-06-26 18:48
  • 710

OJ嘻唰唰之类模板(1)类模板---求数组的最大值

问题及代码: /* *Copyright(c)2014,烟台大学计算学院 *All rights reserved. *文件名称:test.cpp *作者:陈银丽 *完成日期:2015年7月7日 *...
  • CKL1029
  • CKL1029
  • 2015-07-07 21:07
  • 604

OJ嘻唰唰之填空题(1)删除线性表节点

问题及代码: /* *Copyright(c)2014,烟台大学计算学院 *All rights reserved. *文件名称:test.cpp *作者:陈银丽 *完成日期:2015年7月7日 *...
  • CKL1029
  • CKL1029
  • 2015-07-07 21:26
  • 668

YTU 2619: B 友元类-计算两点间距离

2619: B 友元类-计算两点间距离 时间限制: 1 Sec  内存限制: 128 MB 提交: 469  解决: 252 题目描述 类Distance定义为类Point的友...
  • qq_28954601
  • qq_28954601
  • 2016-02-07 20:18
  • 401

OJ嘻唰唰之改错题(5)类中私有成员的访问

问题及代码: /* *Copyright(c)2014,烟台大学计算学院 *All rights reserved. *文件名称:test.cpp *作者:陈银丽 *完成日期:2015年7月6日 *...
  • CKL1029
  • CKL1029
  • 2015-07-06 18:54
  • 564
    个人资料
    • 访问:57993次
    • 积分:1884
    • 等级:
    • 排名:千里之外
    • 原创:132篇
    • 转载:1篇
    • 译文:0篇
    • 评论:26条
    最新评论