继承也是对一个基类做扩展。
比如我有一个类,我现在觉得这个类不够强大
那我就再搞一个类,继承上一个类,那么我就可以拥有上一个类的全部功能,还可以在那个类的基础上做扩展。
eg:
class Arr{
public:
Arr(){
tail = 0;
~Arr(){
}
void insert(int &x){
arr[tail] = x;
tail ++;
}
void show(){
int i= 0;
for(;i<tail;++i){
cout << arr[i] << endl;
}
}
private:
int tail;
char arr[100];
};
还是这个数组类,但是我觉得它的功能太少了。它只有insert和show这俩个函数。这就比较捞。
我想去做扩展,但是我又不想重新写一遍,或者我拿不到数组类的源码。
那么就可以使用继承,也叫做派生类。
class Arrpluse:public Arr{
public:
void XXX(){
}
};
class Arrpluse:public Arr
我就可以写一个这样的类,这个类就叫派生类。public
这只是继承方式的一种,我们看一下:
-
public继承方式
基类中所有public成员在派生类中为public属性;
基类中所有protected成员在派生类中为protected属性;
基类中所有private成员在派生类中不可访问。 -
protected继承方式
基类中的所有public成员在派生类中为protected属性;
基类中的所有protected成员在派生类中为protected属性;
基类中的所有private成员在派生类中仍然不可访问。 -
private继承方式
基类中的所有public成员在派生类中均为private属性;
基类中的所有protected成员在派生类中均为private属性;
基类中的所有private成员在派生类中均不可访问。