Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7549226
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: C/C++

2011-08-04 11:41:45

/*

 * 普通函数作为友元函数

 * Lzy      2011-8-4

 */

 

#include

using namespace std;

 

class Person

{

private:

    int id;

public:

    Person(int i):id(i){}

    friend int Display(Person &p);

};

 

int Display(Person &p)

{

    return p.id;

}

 

int main(void)

{

    Person p(3);

    cout<

    return 0;

}

 

 

 

/*

 * 成员函数作为友元函数

 * Lzy      2011-8-4

 */

 

#include

using namespace std;

 

class ClassA;

 

class ClassB

{

public:

    int Display(ClassA &a);

};

 

class ClassA

{

private:

    int num;

public:

    ClassA(int i):num(i){}

    friend int ClassB::Display(ClassA &a);

};

 

int ClassB::Display(ClassA &a)

{return a.num;}

 

int main(void)

{

    ClassA a(3);

    ClassB b;

    cout<

    return 0;

}

 

 

/*

 * 友元类

 * Lzy      2011-8-4

 */

 

#include

#include

using namespace std;

 

class Point;

 

class Point

{

private:

    float x, y;

public:

    Point(const float i,const float j):x(i),y(j){}

    friend class Distance;

};

 

class Distance

{

public:

    float distance(Point &p1, Point &p2){return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}

};

 

int main(void)

{

    Point p1(3.0,4.0), p2(3.0,4.0);

    Distance d;

    cout<

    return 0;

}

 

阅读(1064) | 评论(0) | 转发(2) |
0

上一篇:静态成员实例

下一篇:模板实例

给主人留下些什么吧!~~