继承课程时,我是否应始终添加public
关键字?在执行此代码时:
class Derived : public Base {
}
我认为在99%的案例中这是正确的做法。正确?
答案 0 :(得分:7)
这取决于您要寻找的型号。
来自Scott Myers - Effective C++ Third Edition(建议阅读,顺便说一句):
public
继承意味着“是-a”。如果您编写该类D
(“Derived”)公开继承自class B
(“Base”),那么您告诉C ++编译器(以及您的代码的人类读者)每个类型的对象{ {1}}也是D
类型的对象,但反之亦然
和
B
继承意味着“is-implemented-in-terms-of”
答案 1 :(得分:2)
是的,因为这与其他面向对象的编程语言(如C#或Java)的继承行为相匹配。
如果您使用private
而不是public
,则会隐藏Base类的属性和方法。这意味着如果你有一个Derived类的指针,编译器将不允许你调用Base类的公共方法。