第七週任務二 友元函數

/* (程序頭部註釋開始)
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙臺大學計算機學院學生 
* All rights reserved.
* 文件名稱:    friend class                          
* 作        者:   姜雅明                              
* 完成日期:   2012      年   04    月   03     日
* 版  本  號:    1.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){}
	friend double Distance1(CPoint &c1, CPoint &c2);
	double Distance(CPoint p) const;
	double getx() {return x;};
	double gety() {return y;};
};

double CPoint::Distance(CPoint p) const
{
	return sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y - y));
}

double Distance1(CPoint &c1, CPoint &c2)
{ 
	return sqrt((c1.x - c2.x) * (c1.x - c2.x) + (c1.y - c2.y) * (c1.y - c2.y));
}

double Distance2(CPoint &c1, CPoint &c2)
{
	return sqrt((c1.getx() - c2.getx()) * (c1.getx() - c2.getx()) + (c1.gety() - c2.gety()) * (c1.gety() - c2.gety()));
}

void main()
{
	CPoint c1(2,5);
	CPoint c2(5,8);

	cout << "1.      類;兩點間的距離爲:" << c1.Distance(c2) << endl;
	cout << "2.友元函數;兩點間的距離爲:" << Distance1(c1, c2) << endl;   //友元函數顯示兩點間的距離
	cout << "3.普通函數;兩點間的距離爲:" << Distance2(c1, c2) << endl;   //普通函數顯示兩點間的距離
	system("pause");
}


這個感覺還好吧,不是很難···

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