相关疑难解决方法(0)

私有,公共和受保护继承之间的区别

是什么区别public,private以及protected用C++继承?我在SO上发现的所有问题都涉及具体案例.

c++ inheritance encapsulation c++-faq access-specifier

952
推荐指数
14
解决办法
65万
查看次数

默认类继承访问

假设我有一个基类和派生类:

class Base
{
    public:
    virtual void Do();
}

class Derived:Base
{
    public:
    virtual void Do();
}

int main()
{
    Derived sth;
    sth.Do(); // calls Derived::Do OK
    sth.Base::Do(); // ERROR; not calls Based::Do 
}
Run Code Online (Sandbox Code Playgroud)

如我所见,我希望通过Derived访问Base :: Do.我得到一个编译错误,因为"类Base不可访问"但是当我声明Derive as时

class Derived: public Base
Run Code Online (Sandbox Code Playgroud)

它工作正常.

我已经读过默认继承访问是公共的,那为什么我需要在这里显式声明公共继承?

c++ inheritance

47
推荐指数
4
解决办法
2万
查看次数