第七周上机报告(项目二:两点间距离之不同函数的实现)

来源:互联网 发布:sql数据库实训心得 编辑:程序博客网 时间:2024/06/07 11:24
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: 两点间距离——三种函数的实现.cpp* 作者:王昕彤* 完成日期: 2013年 4  月 15  日* 版本号: v1.0* 输入描述:无* 问题描述:无* 程序输出:无*/#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) {}    // 请继续写需要的代码    double distance1(CPoint &); // 成员函数声明    friend double distance2(CPoint &,CPoint &); // 友元函数声明    int getx()    {        return x;    }    int gety()    {        return y;    }};double distance3(CPoint &,CPoint &);  //一般函数声明double CPoint::distance1(CPoint &t)  //成员函数的实现,dispaly1前加CPoint::{    double dx,dy;    dx=x-t.x;    dy=y-t.y;    return sqrt(dx*dx+dy*dy);}double distance2(CPoint &t1,CPoint &t2)  //友元函数的实现,distance2前不加CPoint::,并不是类的成员函数{    //不是类的成员函数,却可以t1.x的形式直接访问私有数据成员——友元    double dx,dy;    dx=t1.x-t2.x;    dy=t1.y-t2.y;    return sqrt(dx*dx+dy*dy);}double distance3(CPoint &t1,CPoint &t2)  //一般函数的实现,distance1前加CPoint::{    //不能直接访问,只能用公共接口t1.getx()形式访问私有数据成员    double dx=t1.getx()-t2.getx(),dy=t1.gety()-t2.gety();    return sqrt(dx*dx+dy*dy);}int main(){    CPoint t1(10,13),t2(5,9);    t1.distance1(t2);  //成员函数这样调用    distance2(t1,t2);  //友员函数的调用和一般函数无异    distance3(t1,t2);  //一般函数的调用    cout<<"成员函数:"<<t1.distance1(t2)<<endl;    cout<<"友元函数:"<<distance2(t1,t2)<<endl;    cout<<"一般函数:"<<distance3(t1,t2)<<endl;    return 0;}


运行结果: