需要继承方面的帮助

时间:2011-04-16 11:08:52

标签: c++ oop inheritance

我已阅读此question, 我仍然怀疑我的继承概念。我试图解决家庭作业,但我认为我仍然没有获得访问级别。我脑子里有以下问题,

  

受保护公开   访问说明符相同? (我找不到   差)

我的作业附于下方,如果不正确,请帮我解决。 enter image description here enter image description here

4 个答案:

答案 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)

Base类的受保护成员只能由Base类和从基类派生的类访问。

**私人会员**只能由自己的班级加入,并且不能由派生班级加入。

**公共成员**可以被任何类访问,包括派生类。

请检查this问题

相关问题