-5

公共成员和公共继承的受保护成员有什么区别?(据说受保护的成员只能被基类和下一个派生类访问。但是如果我们公开继承受保护的成员,我们可以进一步继承它。)

4

6 回答 6

1

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

于 2013-04-12T09:02:41.547 回答
1
  • 公共方法对每个人都是可见的。
  • 公共继承的受保护方法仍然受保护,即对类本身和任何派生类可见。
于 2013-04-12T09:00:08.727 回答
0

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

于 2013-04-12T08:59:53.513 回答
0

好吧,公共继承是您的“正常”继承,因此在这种情况下,公共和受保护成员的语义正是您认为的那样。

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

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

于 2013-04-12T09:00:38.377 回答
0
  • 1:如果受保护的成员被公共继承,那么子类可以访问它,并且它将在子类中保持受保护,以便我们可以在下一个子类中访问该成员。
  • 2:如果private继承了protected成员,那么子类可以访问它,它会在子类中变为私有,这样我们就不能在下一个子类中访问这个成员。
于 2013-04-12T09:06:02.987 回答
0

A public member is public. A protected member is protected. It doesn't matter whether they got there by being defined directly or being inherited from a public base.

于 2013-04-12T15:14:09.973 回答