类与对象(友元)。。。2014.5.19

/*文件名:friend_class.cpp*/
//friend [class]...友元
//类的友元可以访问类中的所有的成员.
//类之间的友元关系不能被传递
//类之间的友元关系是单向的
//友元关系不能被继承
#include<iostream>
#include<math.h>
using namespace std;

class Point
{
public:
	Point();                  //声明构造函数.
	Point(double x,double y);
private:
	double x_axis;            //定义私有的数据成员.
	double y_axis;
	friend class Beeline;//声明Beeline类是Point类的友元类.
};

class Beeline
{
public:
	Beeline();                //声明构造函数.
	Beeline(Point aa,Point bb);

	Beeline(double a_x,double a_y,double b_x,double b_y);
	double length();
private:
	Point a;
	Point b;
};

Point::Point():x_axis(0),y_axis(0){};//对point的构造函数进行定义
Point::Point(double x,double y):x_axis(x),y_axis(y){};

Beeline::Beeline()//定义Beeline类的构造函数,友元类Beeline中的	            
	              //成员函数可以访问Point类中的所有成员.
{
	a.x_axis=0;
	a.y_axis=0;
	b.x_axis=0;
	b.y_axis=0;
}
Beeline::Beeline(Point aa,Point bb):a(aa),b(bb){};//定义Beeline类的构造函数.

Beeline::Beeline(double a_x,double a_y,double b_x,double b_y)//定义Beeline类的构造函数.
{
	a.x_axis=a_x;
	a.y_axis=a_y;
	b.x_axis=b_x;
	b.y_axis=b_y;
}

double Beeline::length()//类Beeline类里面的函数length的定义
{
	double length=0;
	length=sqrt((a.x_axis-b.x_axis)*(a.x_axis-b.x_axis)
		+(a.y_axis-b.y_axis)*(a.y_axis-b.y_axis));
	return length;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值