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`,为什么还需要这三种继承方式?
请用简单的语言和例子解释一下。最好用通俗易懂的方式,让新手能明白。提前谢谢!