C++中的友元机制允许类的非公有成员被一个类或者函数访问,友元按类型分为三种:普通非类成员函数作为友元,类的成员函数作为友元,类作为友元。 此次我们着重理解友元类,friend在类中的声明可以再public、protected和private的如何一个控制域中,而不影响其效果。例如,如果你在protected域中有这样的声明,那么aClass类同样可以访问该类的private成员。
例如:
class Protocol104 : public Protocol { public: Protocol104(Type t); virtual ~Protocol104(); private: friend class Protocol104Private; PacketMode mode; }在Protocol104Private文件内就可以调用Protocol104的私有。 如下: 先定义:
class Protocol104Private { public: Protocol104Private(Protocol104* parent); ~Protocol104Private(); private: Protocol104 *q_ptr; }; if(q_ptr->mode == Protocol::RAW_PACKET) { dump_msg(104, 1, msg +4, bytesIndex-4 ); }代码中的mode就为 Protocol104的私有,还可以调用。
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:friend class 友元类 https://www.yhzz.com.cn/a/13915.html