第七周任务二

来源:互联网 发布:sql server添加默认值 编辑:程序博客网 时间:2024/05/16 15:16

* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2011,

 烟台大学计算机学院学生 * All rights reserved

.* 文件名称:

* 作    者:    张艳明                 

 * 完成日期:     2012    年 4  月    4  日

* 版 本 号:       V1.0 

  * 对任务及求解方法的描述部分

* 输入描述:

 * 问题描述:

 * 程序输出: 

* 程序头部的注释结束

//*

#include<iostream>  #include<cmath>    using namespace std;    enum SymmetricStyle { axisx,axisy,point};//分别表示按x轴, y轴, 原点对称    class CPoint  {  private:        double x;  // 横坐标        double y;  // 纵坐标    public:        CPoint(double xx = 0,double yy = 0);        double Distance1(CPoint p) ;   // 两点之间的距离(一点是当前点,另一点为参数p)        friend double Distance2(CPoint &);        double getx(){return x;}        double gety(){return y;}        void input();  };  double Distance3(CPoint &);  CPoint::CPoint(double xx,double yy):x(xx),y(yy){}    // 两点之间的距离(一点是当前点,另一点为参数p)  // 成员函数的实现,Distance前加Cpoint::,以x,y的形式直接访问私有数据成员  double CPoint::Distance1(CPoint p)  {      return(sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y)));  }  //友元函数的实现,  double Distance2(CPoint &p)  {      CPoint p1;        cout << "请输入一个点" ;        p1.input();        return(sqrt((p1.x - p.x) * (p1.x - p.x) + (p1.y - p.y) * (p1.y - p.y)));  }  //普通函数的实现  double Distance3(CPoint &p)  {      CPoint p1;        cout << "请输入一个点" ;        p1.input();        return(sqrt((p1.getx() - p.getx()) * (p1.getx() - p.getx()) + (p1.gety() - p.gety()) * (p1.gety() - p.gety())));  }       //以x,y 形式输入坐标点  void CPoint::input()  {      char c;        cout << "格式:(x,y):" ;        cin >> x >> c >> y;        while(1)      {          if(c != ',')          {              cout << "格式出错请重输!" << endl;          }          else break;      }      return ;  }    void main()  {      CPoint p1,p2;        cout << "输入第一个点p1:" ;      p1.input();        cout << "输入第二个点p2:";      p2.input();        cout << "这两点之间的距离是:" << p1.Distance1(p2) << endl;//调用成员函数    "这两点之间的距离是:" << Distance2(p1) << endl;//友元函数的调用        cout <<     cout << "这两点之间的距离是:" << Distance3(p1) << endl;//普通函数的调用        system("pause");  }  



上机心得:
1友元函数,关键字friend声明,一个类的友元函数可以访问这个类中的私有成员,
           

2友元函数并不属于类的成员函数,在访问类内的数据成员时,必须制定一个要访问的对象,通过制定的对象来访问私有数据成员

3.而普通函数只能通过调用类的成员函数来访问类的私有成员。