7週目—2.成元関数、友元関数と一般関数の違い

1637 ワード

/*
*             
* Copyright (c)2012,            
* All rightsreserved.
*     : fun.cpp
*    :   
*     :2013  4 19 
*    : 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 get_x(){return x;}
	int get_y(){return y;}
};
double Distance3(CPoint &,CPoint &);//      
double CPoint::Distance1(CPoint &p)//      
{
	return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
}
double Distance2(CPoint &p1,CPoint &p2)//       
{
	return sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));
}
double Distance3(CPoint &p1,CPoint &p2)//       
{
	double dx=(p1.get_x()-p2.get_x()), dy=p1.get_y()-p2.get_y();   
   return sqrt(dx*dx+dy*dy);  
}
int main()
{
	CPoint p1(2,3),p2(-1,2);
	cout<<"1. "<<p1.Distance1(p2)<<endl;  
    cout<<"2. "<<Distance2(p1,p2)<<endl;  
    cout<<"3. "<<Distance3(p1,p2)<<endl;  
    system("pause");  
    return 0;  
}

プログラムの実行:
心得体得:最も簡単なプログラミング方法を見つけるには、複雑に書くほど間違いやすい!