C++ 应该是C++;类继承(几乎)总是公共的?

C++ 应该是C++;类继承(几乎)总是公共的?,c++,C++,继承类时是否应该始终添加public关键字?执行此代码时: class Derived : public Base { } 我认为在99%的情况下这样做是正确的。是吗?是的,因为这与其他面向对象编程语言(如C#或Java)的继承行为相匹配 如果要使用private而不是public,则基类的属性和方法将隐藏。这意味着,如果您有派生类的指针,编译器将不允许您调用基类的公共方法。这取决于您要查找的模型 来自(推荐阅读,顺便说一句): public继承意味着“is-a”。如果你写的代码 d < /

继承类时是否应该始终添加
public
关键字?执行此代码时:

class Derived : public Base {

}

我认为在99%的情况下这样做是正确的。是吗?

是的,因为这与其他面向对象编程语言(如C#或Java)的继承行为相匹配


如果要使用
private
而不是
public
,则基类的属性和方法将隐藏。这意味着,如果您有派生类的指针,编译器将不允许您调用基类的公共方法。

这取决于您要查找的模型

来自(推荐阅读,顺便说一句):

public
继承意味着“is-a”。如果你写的代码<代码> d < /code >(“派生”)从“代码>类B (“BASE”)中公开继承,则你告诉C++编译器(以及你的代码的人类读者),每一个类型的代码<>代码也是一个类型的对象<代码> b/code >,但是反之亦然

private
继承意味着“在以下方面实现”


实际上,这取决于您希望通过DerivedBase显示的正确代码。99%的情况下,类是使用
public
关键字派生的。@谢谢。我想是的,谢谢。这个答案完美地解释了一切。@bodacydo它实际上并没有解释太多。这是Meyers的术语,尽管我认为“秘密地-is-a”或“私下地-is-a”是一个更容易理解的描述,因为它肯定仍然是“is-a”,并且一个类也是根据其所有成员变量实现的。非常感谢!!!凹凸以满足注释长度要求