公共成员和公共继承的受保护成员有什么区别?

what is the difference between public members and publicly inherited protected members?

本文关键字:成员 什么 区别 继承 受保护      更新时间:2023-10-16

公共成员和公共继承的受保护成员有什么区别?(据说受保护的成员只能由基类和紧接着的下一个派生类访问。但是,如果public继承protected成员,则可以进一步继承。

  • 公共方法对所有人都是可见的。公共继承的protected方法仍然是受保护的,即对类本身和任何派生类可见。

Public成员可以从使用该类的对象的任何类中访问,对于访问Public成员,您不必继承该类,但要访问受保护的成员,您必须继承它。请注意,如果一个成员在基类中声明为受保护的,并且您公开继承了该成员,那么该成员也将被视为派生类的受保护成员。

Public成员也可以被其他类(不仅仅是派生类)访问,并且通常可以在任何地方访问。

好吧,公共继承是你的"正常"继承,所以在这种情况下,public和protected成员的语义正是你所认为的。

也就是说,您的public成员是公共的,而您的protected成员仅对当前和更多派生类可见。

基本上只有当你开始使用私有/受保护的继承时,事情才会变得危险和混乱,很奇怪

  • 1:如果受保护的成员被public继承,那么子类可以访问它,它将在子类中保持保护,以便我们可以在下一个子类中访问这个成员。
  • 2:如果受保护成员被private继承,则子类可以访问它,它会在子类中设置为私有,这样我们就不能在下一个子类中访问该成员。

public成员是public。受保护的成员被保护。无论它们是通过直接定义还是从公共基继承而得到的