Avatar ·

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

您好,各位同行!我开始学习 C++,但在继承方面遇到了困惑。我理解有三种访问说明符:public、protected 和 private。但当我试图将它们应用到继承中时,就感到迷茫了。例如,我有一个基类: ```cpp class Base { public: int pub = 1; protected: int prot = 2; private: int priv = 3; }; ``` 我想创建一个继承自 Base 的 Derived 类。我尝试过写 `class Derived : public Base`、`class Derived : protected Base` 和 `class Derived : private Base`。每种情况下的行为都不同,但我无法理解其中的具体区别。例如,为什么在 private 继承下,我不能从外部访问 pub?以及,什么是派生类成员的"可访问性"? 我感觉自己遗漏了某些基础逻辑。如果能得到带有示例的解释,特别是从尝试使用继承成员时对代码有何影响的角度来说明,我将不胜感激。提前感谢!