需求

今天编译报错 error: is an inaccessible base of

解决

这个问题解决也非常简单,主要是默认的继承实际上是 private, 所以不能直接访问父类的成员,只要在继承时,用 public 进行标识即可。

class A {
public:
    virtual int add(int a, int b);
};

class B : public A {
    int add(int a, int b) {
      return a + b;
    }
};

参考

‘A’ is an inaccessible base of ‘B’解决方案

C++ is an inaccessible base of 问题的解决方法