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

时间:2013-04-12 08:58:14

标签: c++

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

6 个答案:

答案 0 :(得分:1)

  • 每个人都可以看到公共方法。
  • 公开继承的受保护方法仍受保护,即对类本身和任何派生类可见。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

公共成员也可以被其他类(不仅仅是派生类)和一般的任何地方访问。

答案 3 :(得分:0)

嗯,公共继承是你的“正常”继承,所以在这种情况下公共和受保护成员的语义正是你认为的那样。

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

基本上只有当你开始使用私有/受保护的继承时,事情才会变得危险和令人困惑,并且奇怪的

答案 4 :(得分:0)

  • 1:如果受公共继承的受保护成员那么子类可以 访问它以及它将在子类中保持受保护,以便 我们可以在下一个子课程中访问该成员。
  • 2:如果受私有子类继承的受保护成员可以 访问它,它将在子类中私有,所以我们不能 在下一个子类中访问此成员。

答案 5 :(得分:0)

公众成员是公开的。受保护的成员受到保护。无论他们是通过直接定义还是从公共基础继承而到达那里都无关紧要。