继承后的可见性
Protected的使命:
因为基类的私有成员是不可被继承的,从而不能在派生类中直接访问。
那么如果私有数据想要被派生类继承呢?我们可以去除private的可见性限制,改为public,以此完成上述目标。
但是这样一来,该数据就能被程序中的所有其他函数访问,就丧失了数据隐藏的优势。
Protected的出现解决了这一难题。
Protected可见性修饰符来进行限定目的的继承任务。
声明为protected的成员可有类内的成员函数访问,也可由继承类访问。但是它不能由基类和继承类之外的函数访问
能够访问私有和保护成员的函数有哪些?
1:类的友元函数。
2:友元类的函数。
3:派生类的成员函数。
其中友元函数和友元类的成员函数可以直接访问私有(private)和保护(protected)数据;而派生类的成员函数只能直接访问保护(protected)数据,不过他们都可以通过基类的成员函数来访问基类的私有(private)数据