继承子类时的默认保护级别是什么?

Ric*_*ick 0 c++ inheritance

可能重复:
默认类继承访问

我知道我可以在从超类声明子类时设置保护级别,如下所示:

class Dog : public Pet {
   *blah, blah, blah*
}
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下保护级别默认为什么?

Class Dog: Pet {
   *blah, blah, blah*
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ork 6

对于一个类,它是私人的

class Dog: Pet  // Pet is inherited privately.
{}
Run Code Online (Sandbox Code Playgroud)

对于结构,它是公共的.

struct Dog: Pet  // Pet is inherited publicly.
{}
Run Code Online (Sandbox Code Playgroud)

简单测试:

class Pet {};
class  DogClass:  Pet {};
struct DogStruct: Pet {};
int main()
{
    DogClass   dogClass;
    // Pet&       pet1 = dogClass;  This line will not compile.

    DogStruct  dogStruct;
    Pet&       pet2 = dogStruct;
}
Run Code Online (Sandbox Code Playgroud)