Avatar ·

public、protected和private继承在C++中的区别是什么?

大家好!我开始学习C++,学到了继承,但对类继承时的访问修饰符感到困惑。书上的解释有点复杂。 假设有一个基类,包含不同的字段: ```cpp class Base { public: int pub = 1; protected: int prot = 2; private: int priv = 3; }; ``` 为什么在C++中需要写`class Derived : public Base`,而不是直接写`class Derived : Base`?如果我写`class Derived : private Base`或`class Derived : protected Base`,会有什么变化? 我尝试了不同的方式,但不太理解其中的逻辑。例如,如果通过`private`继承,我能在派生类内部访问`pub`和`prot`吗?外部呢?如果从类继承一个结构体,会发生什么?最重要的是,既然可以一直用`public`,为什么还需要这三种继承方式? 请用简单的语言和例子解释一下。最好用通俗易懂的方式,让新手能明白。提前谢谢!