第44课.继承中的访问级别
1.问题:子类能访问父类中的私有成员吗?
子类在父类的外界,所以子类不能直接访问父类的私有成员。但是子类的定义中说子类拥有父类的一切属性和行为,怎么使子类访问父类的私有成员呢?这里就涉及到protected的使用了。
2.继承中的访问级别
a.面向对象中的访问级别不只是public和private
b.可以定义protected访问级别
c.protected的意义:
1).修饰的成员不能被外界直接访问(private)
2).修饰的成员可以被子类直接访问(即只能在子类中访问)
eg:
#include <iostream>
#include <string>
using namespace std;
class Parent
{
protected:
int mv;
public:
Parent ()
{
mv = 100;
}
int value()
{
return mv;
}
};
class Child : public Parent
{
public:
int addvalue(int v)
{
mv = mv + v; //protected 修饰的成员变量可以被子类调用
}
};
int main()
{
Parent p;
cout << "p.mv = " << p.value() << endl;
//p.mv = 1000; 外界不能调用protected修饰的变量
Child c;
cout << "c.mv = " << c.value() << endl;
c.addvalue(50);
cout << "c.mv = " << c.value() << endl;
//c.mv = 1000; 不能在子类之外的地方调用protected函数
return 0;
}