c++ publicly inherited class member cannot be used as default argument

后端 未结 3 1451
Happy的楠姐
Happy的楠姐 2020-12-21 05:37

A schematic of my problem...

class A
{
public:
    // etc.
protected:
    uint num;
};

class B : public A
{
public: 
    void foo(uint x = num); //bad
};
         


        
3条回答
  •  一向
    一向 (楼主)
    2020-12-21 06:03

    You can use overloading instead of default arguments.

    class A
    {
    public:
        // etc.
    protected:
        uint num;
    };
    
    class B : public A
    {
    public: 
        void foo(uint x);
        void foo() { foo( num ); }
    };
    

提交回复
热议问题