3-7 类的友元函数的应用

来源:互联网 发布:4选1数据选择器的测试 编辑:程序博客网 时间:2024/06/03 16:01

Problem Description
通过本题目的练习可以掌握类的友元函数的定义和用法
要求设计一个点类Point,它具有两个double型的数据成员x,y。为该类设计构造函数。并为其添加一个友元函数用于计算并输出两点间的距离;再添加一个输出成员函数用于输出点的信息。

并编写主函数,实现以下的输入输出内容。
Input
4个double型的数,中间用一个空格间隔。
Output
输出数据共3行,前两行用于显示要求距离的两个点的信息,第三行显示两点的距离。
Example Input
5 6 2 3
Example Output
The first point is the coordinate:X=5,Y=6
The second point is the coordinate:X=2,Y=3
The distance between the two points is:4.24264

友元函数:封装后开一个小口,可以访问数据成员

#include <iostream>#include <cstring>#include <math.h>using namespace std;class Point{private:    double x, y;public:    Point(double xx = 0, double yy = 0)    {        x = xx;        y = yy;    }    void showpoint1()    {        cout<<"The first point is the coordinate:X="<<x<<",Y="<<y<<endl;    }     void showpoint2()    {        cout<<"The second point is the coordinate:X="<<x<<",Y="<<y<<endl;    }    friend void dis(Point &p1, Point &p2);//友元函数的声明,加不加&的区别    //一定注意,友元函数声明和定义时返回类型一定相同。可以是void,也可是其他数据类型};void dis(Point &p1, Point &p2)//类外定义时不加friend{    double x = p1.x - p2.x;    double y = p1.y - p2.y;    double t = sqrt(x*x + y*y);    cout<<"The distance between the two points is:"<<t<<endl;}int main(){    double x, y, z, h;    cin>>x>>y>>z>>h;    Point a(x, y);    Point b(z, h);    a.showpoint1();    b.showpoint2();    dis(a, b);    return 0;}
阅读全文
0 0
原创粉丝点击