继承,就像字面的意思,是从别的地方获得一些本来不属于自己的东西。在c++中,继承是非常重要的对象复用手段。
在编写大型程序时,往往有很多的类,每个类都有自己的成员变量和成员函数,但有些类之间的数据成员和函数却相同,为了节省代码量和工作时间,只需继承父类中的数据成员和函数即可。
有了继承,继承对象可以使用被继承对象的成员变量和成员函数,这样大大提高了代码的复用性。
继承的简单实例:
class person//父类(基类)
{
public:
void show()
{
cout<<_name<<'-'<<_age<<endl;
}
protected:
string _name;
int _age;
}
class student : public person //子类(派生类)
{
protected:
int _num;
}
在上面这段代码中:
被继承的类是person,被继承类也叫父类/基类,他有成员函数show()和两个被保护的成员变量_name和_age。
继承的类是student,继承类也叫子类/派生类,他有一个被保护的成员变量_int。
他们之间的继承关系是公有继承public,这个在下面会细讲,先记住这个写法。
现在在student内部就已经可以访问person类内的成语函数和变量了。
继承的种类
继承分三种:公有继承(public),私有继承(private),保护继承(protected)。
(在实际生活中,绝大多数继承都属于公有继承)。
属于何种继承,主要看子类类名后面的部分,我们再来看一下之前上面的代码:
如图可以得知,子类student继承了父类person的内容,继承的类别是公有继承。
关于父类成员的访问限定符与子类的继承方式有如下表格: