第七周任务二

 

#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 &);//友元函数的声明

        double getx() { return x;}  //公共接口

        double gety() { return y;}

};
double distance3 ( CPoint &, CPoint &);//一般函数的声明

double CPoint :: distance1 ( CPoint & t)//成员函数的实现,要加域运算符
{
	return sqrt( ( t.x - x) * (t.x - x ) + ( t.y - y ) * ( t.y - y ) );
}

double  distance2 ( CPoint & t1, CPoint & t2)//友元函数的实现,不属于类,不需要加域运算符
{
	return sqrt( (t1.x - t2.x ) * ( t1.x - t2.x ) + (t1.y - t2.y ) * (t1.y - t2.y ) );
}

double distance3 ( CPoint & t1, CPoint & t2)
{
	return sqrt( (t1.getx() - t2.getx() ) * (t1.getx() - t2.getx() ) + (t1.gety() - t2.gety() ) * (t1.gety() - t2.gety() ) );
}//以公共接口的形式访问私有成员

int main () 
{
	CPoint c1 ( 3 , 2 ) , c2 ( 5 , 7 );

	cout << "此两点之间的距离为:" << c1. distance1 (  c2 ) << endl;
	
	cout << distance2 ( c1,  c2 ) << endl;
	
	cout << distance3 ( c1 , c2 ) << endl;
	
	system("pause");
	
	return 0;
}

调用友元函数要提前声明

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值