Accessing protected members in a derived class

前端 未结 8 2114
礼貌的吻别
礼貌的吻别 2020-11-22 11:30

I ran into an error yesterday and, while it\'s easy to get around, I wanted to make sure that I\'m understanding C++ right.

I have a base class with a protected memb

8条回答
  •  [愿得一人]
    2020-11-22 12:02

    You can try with static_cast< const Derived*>(pBase)->Base::protected_member ...

    class Base
    {
      protected:
        int b;
    
      public:
        ...
    };
    
    class Derived : public Base
    {
      protected:
        int d;
    
      public:
        void DoSomething(const Base& that)
        {
          b += static_cast(&that)->Base::b;
          d=0;
        }
        void DoSomething(const Base* that)
        {
          b += static_cast(that)->Base::b;
          d=0;
        }
    };
    

提交回复
热议问题