1、继承的概念:在一个已知类的基础上创建一个新的类,新类包含了原来类的所有成员,并且还增加了自己的成员,这个过程叫继承。其中被继承的类叫做基类(也称为 父 类),由继承产生的新类叫做派生类(也称为子类)。
2、分类:继承可以分为多重继承和单重继承,多重继承是指基类有多个,而单继承的基类只有一个。
3、派生类的定义格式:
class <派生类名>:<继承方式> <基类名>
{
<派生类新增成员>;
}
其中继承方式有多种:
(1)公有方式继承(public);
(2)私有方式继承(private);
(3)保护方式继承(protect);
由不同继承方式产生的派生类对基类的访问权限不同,具体如下:
基类成员 | public继承方式 | private继承方式 | protected继承方式 |
公有成员 | public | private | protected |
私有成员 | private | private | private |
保护成员 | protect | private | protected |
4、关于派生类和基类的访问权限具体如下:
(1)public方式继承
派生类可以访问基类中的公有成员和保护成员,还可以访问自己定义的新成员,但是不能访问私有成员;对于派生类中的对象,该对象只能访问派生类中的公有成员和基类中的公有成员。
(2)private方式继承
派生类可以访问基类中的公有成员和保护成员,但派生类的对象只能访问自己定义的公有成员。
(3)protected方式继承
派生类可以访问基类中的公有成员和保护成员,但派生类的对象只能访问自己定义的公有成员,这和private继承方式很像,只不过是基类的对象对于派生类来说,原本为public的类变味了protected类。
5、例子:由基类产生派生类
/*************************************************************************
时间:2016年10月4日08:30:03
功能:继承的验证,由基类产生派生类
**************************************************************************/
#include <iostream>
using namespace std;
class Animal //定义基类
{
public:
void breath()
{
cout<<"they all can breath!"<<endl;
}
};
class Dog:public Animal //定义派生类,继承animal类
{
public:
void special()
{
cout<<"they are humans' friend!"<<endl;
}
};
void main()
{
Dog dog1; //定义对象
dog1.special(); //调用派生类自己的成员函数
dog1.breath(); //由于是public方式继承,所以可以调用基类的成员函数
}