/*文件名: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;
}
类与对象(友元)。。。2014.5.19
最新推荐文章于 2023-02-16 19:51:02 发布