我已阅读此question, 我仍然怀疑我的继承概念。我试图解决家庭作业,但我认为我仍然没有获得访问级别。我脑子里有以下问题,
受保护和公开 访问说明符相同? (我找不到 差)
我的作业附于下方,如果不正确,请帮我解决。
答案 0 :(得分:3)
不同之处在于受保护的成员仅对子类可见/可访问。
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.
};
答案 1 :(得分:1)
不,他们不一样。
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
}
}
答案 2 :(得分:0)
您似乎忘记了最简单和最重要的方面:来自不相关类/独立(非成员)函数的成员的可访问性。 公共成员可以从课外和类层次结构访问,私有和受保护成员不能。
如果您的意思是公开 vs 受保护 继承,那么答案就在您的图表上。
答案 3 :(得分:0)