友元类

来源:互联网 发布:mac腾讯助手官方下载 编辑:程序博客网 时间:2024/06/08 13:23

友元类意思就是类的好朋友,好朋友之间是无话不说没有秘密的, “好”到可以任意访问和修改类的private属性的成员变量和访问private属性的成员函数.例如:若B类是A类的友员类,则B类的可以访问A类的任意成员.
友元类通常设计为一种对数据操作或者类之间传递信息的辅助类
在JAVA中, 可以通过java.lang.reflect包下面的API反射到java类中的所有成员, 然后可以做出对应的操作.由此对比我们可以这样认为, 友元类就是c++中的反射. 友元类这个语法破坏了的封装性和面向对象的设计原则

下面是一个关于友元类的示例:

#include "stdafx.h"#include "iostream"using namespace std;class A{    friend class B;//声明友元类. B是A的好朋友    public:        A(int i=1){            this-> i = i;        }private : //通过友元类访问A的私有成员    int i;    void print(){        cout << "A print()" << "i = " << i<< endl;    }};class B{public :    A obj;    //访问和修改A的私有成员变量    void set(int i){        obj.i = i;    }    //访问A的私有成员函数    void print(){        obj.print();    }};int _tmain(int argc, _TCHAR* argv[]){    B b;    b.set(1000);    b.print();    return 0;}
0 0
原创粉丝点击