C++ friend inheritance?

前端 未结 4 1958
野趣味
野趣味 2020-12-14 14:22

Does a subclass inherit, the main class\' friend associations (both the main class\' own and other classes friended with the main class)?

Or to put it differently, h

4条回答
  •  臣服心动
    2020-12-14 15:03

    You can create (static) protected methods in the parent that will allow you to do things like that.

    class MyFreind
    {
    private:
        int m_member;
        friend class Father;
    };
    
    class Father
    {
    protected:
        static int& getMyFreindMember(MyFreind& io_freind) { return io_freind.m_member; }
    };
    
    class Son : public Father
    {
    public:
        void doSomething(MyFriend& io_freind)
        {
            int& friendMember = getMyFreindMember(io_freind);
            // ....
        } // ()
    };
    

    This however bypasses encapsulation so you probably should take a second look at your design.

提交回复
热议问题