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

Time Limit: 1000MS Memory limit: 65536K

题目描写叙述

通过本题目的练习能够掌握类的友元函数的定义和使用方法
要求设计一个点类Point,它具有两个double型的数据成员x,y。

为该类设计构造函数。

并为其加入一个友元函数用于计算并输出两点间的距离;再加入一个输出成员函数用于输出点的信息。

 
 
并编写主函数,实现下面的输入输出内容。

输入

4个double型的数,中间用一个空格间隔。

输出

输出数据共3行。前两行用于显示要求距离的两个点的信息,第三行显示两点的距离。

演示样例输入

  1. 5 6 2 3

演示样例输出

  1. The first point is the coordinate:X=5,Y=6
  2. The second point is the coordinate:X=2,Y=3
  3. The distance between the two points is:4.24264

提示


来源

 黄晶晶

演示样例程序

  1. #include <iostream>
  2. #include<cmath>
  3.  
  4. using namespace std;
  5.  
  6. class point
  7. {
  8. private:
  9. double x, y;
  10.  
  11. public:
  12. //声明display函数为point类的友元函数
  13. friend void display2(point &t, point &q);
  14. void display1()
  15. {
  16. cout << " point is the coordinate:X=" << x << ',' << "Y=" << y << endl;
  17. }
  18.  
  19. point(double a, double b)
  20. {
  21. x = a;
  22. y = b;
  23. }
  24. };
  25.  
  26. void display2(point &t, point &q)//定义友元函数
  27. {
  28. //使用数学公式求出两点间的距离
  29. cout << "The distance between the two points is:
  30. " << sqrt((t.x - q.x) * (t.x - q.x) + (t.y - q.y) * (t.y - q.y)) << endl;
  31. }
  32.  
  33. int main()
  34. {
  35. double a, b, c, d;
  36. cin >> a >> b >> c >> d;
  37. point x(a,b);
  38. point y(c,d);
  39. cout << "The first";
  40. x.display1();
  41. cout << "The second";
  42. y.display1();
  43. display2(x, y);
  44. return 0;
  45. }

sdut 3-7 类的友元函数的应用的更多相关文章

  1. C++学习之友元类和友元函数

    C++学习之友元类和友元函数       模板类声明也可以有友元,模板的友元可以分为以下几类:        1.非模板友元:        2.约束模板友元,即就是友元的类型取决于类被实例化的时候的 ...

  2. c/c++ 模板与STL小例子系列<二> 模板类与友元函数

    c/c++ 模板与STL小例子系列 模板类与友元函数 比如某个类是个模板类D,有个需求是需要重载D的operator<<函数,这时就需要用到友元. 实现这样的友元需要3个必要步骤 1,在模 ...

  3. C++的友元类和友元函数实例

    #include <math.h> #include<iostream> using namespace std; class Point { public: Point(do ...

  4. gcc的bug? c++模板类中友元函数的訪问权限问题

    原文地址:http://stackoverflow.com/q/23171337/3309790 在c++中,模板类中能够直接定义一个友元函数.该函数拥有訪问该模板类非public成员的权限. 比方: ...

  5. C++模板类中友元函数的写法

    首先,已声明好的类Triangle file://Triangle.h template<class T> class Triangle{ public: Triangle(T width ...

  6. mfc 类的友元函数

    知识点 友元函数 友元函数 友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数..类授予它的友元特别的访问权.通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你 ...

  7. C++ 友元类,友元函数

    //友元函数 友元类 #include<iostream> using namespace std; class PointB { public: friend class PointC; ...

  8. c++,友元类和友元函数

    都是声明时友元的东西可以访问自己类的私有和保护成员 类的友元 友元是C++提供的一种破坏数据封装和数据隐藏的机制. 通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息 ...

  9. Qt 使用qDebug() 打印Qlist 容器数据(将QDebug()定义成某个类的友元函数)

    当QList<T>容器中的数据用qDebug() 打印时 ,假如 T 是内置类型(int  float ...)与 打印一个字符串使用完全一样,假如T 是一个CustomerClass 那 ...

随机推荐

  1. bzoj 1559 AC自动机 + dp

    思路:直接在状态图上跑dp,最后枚举一下42种一下的.. 这个枚举有点恶心. #include<bits/stdc++.h> #define LL long long #define ll ...

  2. 《深入理解Android2》读书笔记(二)

    接之前那篇<深入理解Android2>读书笔记(一) 下面几篇来分别详细分析 Binder类作为服务端的Bn的代表,BinderProxy类作为客户端的Bp的代表,BinderIntern ...

  3. summernote富文本编辑器配合validate表单验证无法进行表单提交的问题

    1.使用summernote富文本编辑器提交图片到服务器 在使用bootstrap中,我们用到了summernote富文本编辑器,使用summernote将图片上传到服务器中,参考我的上篇文章http ...

  4. 子查询在INSERT语句中的应用

    在使用INSERT语句的时候,一般都是使用它向数据库中一条条的插入数据,比如: INSERT INTO MyTable(FId,FName,FAge)VALUES(1,"John" ...

  5. hdu 1251 (Trie水题)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  6. 【BFS】The Morning after Halloween

    [POJ3523]The Morning after Halloween Time Limit: 8000MS   Memory Limit: 65536K Total Submissions: 23 ...

  7. 20172333 2017-2018-2 《Java程序设计》第8周学习总结

    20172333 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容 多态性应用可以随时间变化指向不同类型的对象. 多态性应用,方法的引用与方法的定义代码的绑定在运行 ...

  8. dump备份mysql表

    Auth: Jin Date: 20140403 Content: #!/bin/bash - ### auth: Jin ### ### Desc: 备份输入库里的所有表,清理指定天前的备份文件 # ...

  9. OpenVPN记住账号密码自动连接

    说明:在增加了证书+账号密码之后,安全性确实提高了,但是面临的问题也有,每次重启时必须输入账号密码才能连接,这也造成了无人值守的问题. 解决: 1.在Client的client.ovpn末尾添加一行a ...

  10. CentOS更新Python版本,同时修复yum不能使用的问题

    转自:Li_Hanx博客 遇到问题,需要更新python,网上找了好多都不能顺利更新,找到这位大佬的这篇博客,写的非常好,分享给大家. 发现一个新办法,那就是直接安装另一个版本的Python,比如Py ...