[英]Need Help in Inheritance
我已经读过这个问题 ,我仍然怀疑我的继承概念。我试图解决一个家庭作业,但我认为我仍然没有获得访问级别。 我脑子里有以下问题,
受保护的 公共访问说明符是否相同? (我没有发现差异)
我的作业如下所示,如果不正确,请帮帮我。
不同之处在于受保护的成员仅对子类可见/可访问。
class A {
public:
int a; // anything can access this member.
private:
int b; // only A can access this member.
protected:
int c; // A and every other class that inherits this member can access it.
};
不,他们不一样。
public表示任何其他类都可以访问该成员。
私有意味着它只能由它自己的类访问
protected意味着它可以由自己的类访问,并且所有类都是从类派生的
例:
class 1 {
public void do1() { }
private void do3() { }
protected void do2 { }
1()
{
public void do1() { } // ok
private void do2() { } // ok
protected void do3 { } // ok
}
}
class 2 {
2()
{
1.do1() { } // ok
1.do2() { } // ERROR
1.do3 { } // ERROR
}
}
class 3 inherits class 1 {
3()
{
do1() { } // ok
do2() { } // ERROR
do3 { } // ok = this class can access the the protected member of it's base class
}
}
您似乎忘记了最简单和最重要的方面:来自不相关类/独立(非成员)函数的成员的可访问性。 公共成员可以从类外部访问,类层次结构, 私有和受保护的成员不能。
如果你的意思是公共与受保护的 继承 ,那么答案就在你的图表上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.