第六周(友元函数)

/*

*copyright(c) 2015,烟台大学计算机学院

*All rights reserved。

*文件名称:第六周(友元函数)

*作者:王忠

*完成日期:2015.4.14

*版本号:v1.0

*

*问题描述:别利用成员函数、友元函数和一般函数求两点间距离的函数,并设计main()函数完成测试。

*输入描述:

*程序输出:

#include <iostream>
#include <cmath>
using namespace std;
class CPoint
{
private:
    double x;  // 横坐标
    double y;  // 纵坐标
 public:
    CPoint(double xx=0,double yy=0):x(xx),y(yy){}
    //请继续写需要的代码
    void distance1(CPoint p) const;
    friend void distance2(CPoint &,CPoint &);
    double getx() {return x;}
    double gety() {return y;}
};
 void  CPoint::distance1(CPoint p) const
{
    double s;
    s=sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
    cout<<s<<endl;
}
void distance2(CPoint &p1,CPoint &p2)
{
    double s;
    s=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
    cout<<s<<endl;
}
void distance3(CPoint &p1,CPoint &p2)
    {
        double s;
        s=sqrt((p1.getx()-p2.getx())*(p1.getx()-p2.getx())+(p1.gety()-p2.gety())*(p1.gety()-p2.gety()));
        cout<<s<<endl;
    }

int main()
{
    CPoint c1(5,5),c2(10,6);
    c1.distance1(c2);
    distance2(c1,c2);
    distance3(c1,c2);
    return 0;
}

这个项目在一开始做的时候,应用了以前的程序,但有点难以下手,不知道如何去定义一些函数,后来在写的过程中,一般函数写进了类里,还忘记了一般函数不能访问类里私有成员

时间: 2024-10-17 13:12:06

第六周(友元函数)的相关文章

第六周项目4-成员函数、友元函数和一般函数有区别

(1)阅读下面的程序,体会注释中的说明. //例:使用成员函数.友元函数和一般函数的区别 #include <iostream> using namespace std; class Time { public: Time(int h,int m,int s):hour(h),minute(m),sec(s) {} void display1(); //display1是成员函数 friend void display2(Time &); //display2是友元函数 int get

第六周项目四-成员函数、友元函数和一般函数的区别

(1)阅读下面的程序,体会注释中的说明. //例:使用成员函数.友元函数和一般函数的区别 #include <iostream> using namespace std; class Time { public: Time(int h,int m,int s):hour(h),minute(m),sec(s) {} void display1(); //display1是成员函数 friend void display2(Time &); //display2是友元函数 int get

第六周(友元类)

/* *copyright(c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:第六周(友元类) *作者:王忠 *完成日期:2015.4.14 *版本号:v1.0 * *问题描述:定义下面两个类的成员函数(为体验友元类,实际上本例并不一定是一个好的设计,将两个类的合并为一个DateTime,日期.时间都处理更好) *输入描述: *程序输出: #include <iostream> using namespace std; class Date; //对D

20145317《信息安全系统设计基础》第六周学习总结(1)

20145317<信息安全系统设计基础>第六周学习总结(1) 第四章 处理器体系结构 指令体系结构:一个处理器支持的指令和指令的字节级编码 4.1Y86指令集体系结构 Y86:包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. Y86程序中的每条指令都会读取或修改处理器状态的某些部分.Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC) Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. 注意:条件

《Linux内核分析》第六周学习笔记

<Linux内核分析>第六周学习笔记 进程的描述和创建 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 [学习视频时间:1小时 撰写博客时间:2小时] [学习内容:进程创建的过程.使用gdb跟踪分析内核处理函数sys_clone] 一.进程的描述 1.1 进程描述符task_struct数据结构(一) 1. 进程控制块PCB——task_struct 为了管理进程,内核

20145307《信息安全系统设计基础》第六周学习总结

20145307<信息安全系统设计基础>第六周学习总结 教材学习内容总结 Y86指令集体系结构 内容:定义一个指令集体系结构,包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. 程序员可见状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分. Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC). Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. Y86指令 IA32指令集的一个子集,只

第六周 可执行代码 以及 PSP 燃尽图 等等

转眼已经第六周了.这周主要内容有下:(CHECKLIST) 1.完成未完成的功能点. 2.PSP. 3.站立会议(待开). 4.燃尽图. 5.各种图(折线,饼图). 6.checkList 具体任务如下: 1. i.将用户做过的题目整理到习题本中. ii.习题本可以记录用户当时填写的答案. iii.规范算式(4个数字). iv.将做过的题目去重. v.再次规范化输出算式(生成数目多少,括号位置,括号对数). vi.支持分数运算. vii.结果用分数显示. viii.结果显示分数的最简形式. iX

20145301第六周学习总结

20145301第六周学习总结 教材学习内容总结 第十章 输入/输出 10.1 InputStream与OutputStream InputStream与OutputStream  流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的  InputStream与OutputStream InputStream.OutStream提供串流基本操作,如果想要为输入/输出的数据做加工处理,则可以使用打包器类.常用的打包器具备缓冲区作用的BufferedOutputStream.B

20145319 第六周学习总结

20145319 <Java程序设计>第六周学习总结 教材学习内容总结 本周学习教材的第十.十一章,主要讲述了串流,字符处理和线程以及并行API 1. 输入输出 串流:1Java中的数据有来源(source)和目的地(destination),衔接两者的就是串流对象2串流设计:在不知道限定数据来源和目的地时,也可以依赖抽象的InputStream和Outstream来编写一个dump()方法,方便以后使用3InputStream和OutputStream:在java中,输入串流代表对象为jav