2011-04-16 111 views
1

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

保护公共 访问符一样吗? (我没有找到一个 差)

分配被附在下面,请大家帮我,如果它是不正确。 enter image description here enter image description here

回答

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. 
}; 
0

你似乎忘记了最简单,最重要的方面:在独立(非成员)函数从一个不相关的类成员的可访问性/。 Public会员可以从课外和班级层级访问,私有和受保护的不能。

如果你的意思公共 VS 保护继承,那么,答案是有你的图表。

1

不,它们不一样。

public表示其他任何类都可以访问该成员。

私人意味着它只能通过它自己的类访问

保护意味着它是由自己的类访问,并从类

例推导的所有类:

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 
    } 
} 
0

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

**私人成员**只能由自己的类接受,不能被派生类接受。

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

请检查this问题