C++: Can a struct inherit from a class?

后端 未结 9 985
执笔经年
执笔经年 2020-12-07 14:39

I am looking at the implementation of an API that I am using.

I noticed that a struct is inheriting from a class and I paused to ponder on it...

First, I d

9条回答
  •  忘掉有多难
    2020-12-07 15:05

    A class will not publicly inherit from a struct. A struct will publicly inherit from a class or a struct.

    class A
    {
    public:
        int a;
    };
    struct B : A
    {};
    

    B b; b.a=5; //OK. a is accessible

    class A
    {
    public:
        int a;
    };
    struct B : public A
    {};
    

    It means the same. B b; b.a=5; //OK. a is accessible

    struct A
    {int a;};
    class B : A
    {};
    

    B b; b.a=5; //NOT OK. a is NOT accessible

    struct A
    {int a;};
    class B : public A
    {};
    

    B b; b.a=5; //OK. a is accessible

    Finally:

    class A
    {int a;};
    class B : A
    {};
    

    B b; b.a=5; //NOT OK. a is NOT accessible

    class A
    {int a;};
    class B : public A
    {};
    

    B b; b.a=5; //NOT OK. a is NOT accessible

提交回复
热议问题