zhiyinjixu

  博客园  :: 首页  ::  :: 联系 ::  :: 管理

一、友元函数:

①普通函数作为类的友元:

#include <iostream>
using namespace std;

class A
{
private:
int i;
friend void f() ;
};


void f()
{
A jack;
jack.i=20;
cout<<jack.i<<endl;
}

int main ()
{
f();
return 0;
}



②一个类的成员函数作为这个类的友元:

#include <iostream>
using namespace std;

class A
{
private:
int i;
public:
void f();
friend void f();
};

void A::f()
{
i = 22;
cout<<i<<endl;
}

int main ()
{
A jack;
jack.f();
}



③一个类的成员函数作为另一个类的友元的情况:

#include <iostream>
using namespace std;

class B
{
public:
void f();
};

class A
{
private:
int i;
friend void B ::f();
};

void B::f()
{
A jack;
jack.i = 20;
cout<<jack.i<<endl;
}

int main ()
{
B mike;
mike.f();
}



二、友元类:

#include <iostream>
using namespace std;

class B
{
public:
void f();

};

class A
{
private :
int i;
friend class B; //B是A的友元类
};

void B::f() //这个时候B中的成员函数就可以访问A中的私有成员了
{
A mike;
mike.i = 55;
cout<<mike.i<<endl;
}

int main ()
{
B jack;
jack.f();
}
























posted on 2011-11-14 15:34  zhiyinjixu  阅读(214)  评论(0)    收藏  举报