使用类计算两点间的距离
还是使用友元比较好,在类中声明友元后无需特意定义一个引用的对象。
/*方法一:不可取,但是也能满足效果*/
#include <iostream>
#include <cmath>
using namespace std;
class Point{
private:
float x,y;
public:
Point(){}
Point(float a,float b){
x=a;y=b;
}
double Distance(Point a,Point b);
};
double Point::Distance(Point a,Point b){
return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2));
}
void main(){
Point point,point1(5,5),point2(5,7);
cout<<point.Distance(point1,point2);
}
/*方法二:友元登场*/
#include <iostream>
#include <cmath>
using namespace std;
class Point{
private:
float x,y;
public:
Point(){}
Point(float a,float b){
x=a;y=b;
}
friend double Distance(Point a,Point b);
};
/*friend在类外定义的时候无需加friend标识
*/
double Distance(Point a,Point b){
return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2));
}
void main(){
Point point1(5,5),point2(5,7);
cout<<Distance(point1,point2)<<endl;
}
效果: