Loading...
首页专栏正文

friend class 友元类

 
1人已赏
big_anana 发布于 2020-11-19 17:56:55 浏览 6807 点赞 5733 收藏 1344

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的私有,还可以调用。

*本文仅代表作者观点,不代表易百纳技术社区立场。系作者授权易百纳技术社区发表,未经许可不得转载。

精彩评论

内容存在敏感词
打赏
打赏作者
big_anana
您的支持将鼓励我继续创作!
金额:
¥1 ¥5 ¥10 ¥50 ¥100
支付方式:
微信支付
支付宝支付
微信支付
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区