C++ 友元

来源:互联网 发布:武汉天融信网络 编辑:程序博客网 时间:2024/05/17 06:35

友元

1:友元是单向,当B是A的友元类,A类可通过传递B对象,任意访问类B的成员函数或成员,而B却不能访问A的私用成员;

2:不能被继承;

3:不能被传递;

4:友元的声明,可以在类私用或公用,它们是没区别;

5:友元函数不属于类,但必须在类中声明,类外定义;


友元函数:

#include <iostream>using namespace std;class A{private:int i;friend void set(const int &i, A &a);//声明为友元函数public:A():i(0){}void show(){cout <<"i = " <<i <<endl;}};void set(const int &i, A &a){a.i = i;}int main(void){A a;a.show();set(2, a);a.show();return false;}

友元类:

#include <iostream>using namespace std;class B;class A{private:int i;public:A():i(0){}void show(){cout <<"A : i = " <<i <<endl;}void test(B &b, const int &i);};class B{public:int i;friend class A;//设置B是A的友元类,A类可通过传递B对象,任意访问类B的成员函数或成员public:B():i(0){}void show(){cout <<"B : i = " <<i <<endl;}};void A::test(B &b, const int &i){b.i = i;b.show();}int main(void){A a;B b;b.show();a.test(b, 2);return false;}



0 0
原创粉丝点击