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