2013級C++第7周(春)項目——深複製、友元、模板 【項目3-成員函數、友元函數和一般函數有區別】

/*
* 程序的版權和版本聲明部分
* Copyright (c)2013, 在校學生
* All rightsreserved.
* 文件名稱: 項目3.cpp
* 作    者:劉旺
* 完成日期:2014年4月8日
* 版本號: 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 display(const CPoint &p) ;
    friend void display2(const CPoint &p1, const CPoint &p2) ;
    double getX(){return x ;}
    double getY(){return y ;}
};

void CPoint::display(const CPoint &p)
{
      cout << "成員函數:  倆點距離爲:" << sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)) << endl ;
}

void display2(const CPoint &p1, const CPoint &p2)
{
      cout << "友元函數:  倆點距離爲:" << sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)) << endl ;
}

void display3(CPoint &p1, CPoint &p2)
{
      cout << "普通函數:  倆點距離爲:" << sqrt((p1.getX()-p2.getX())*(p1.getX()-p2.getX())+(p1.getY()-p2.getY())*(p1.getY()-p2.getY())) ;
}

int main()
{
    CPoint p1(1,1) ;
    CPoint p2(2,2) ;
    p1.display(p2) ;
    display2(p1,p2) ;
    display3(p1,p2) ;
    return 0 ;
}

相信自己一定可以做到,並不斷努力着。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章