一、为什么需要继承
继承允许我们依据另一个类来定义一个类,实现代码的重用和提高执行效率的效果。
当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需定义一个新的类继承了一个已有的类的成员即可。这个已有的类称为基类(父类),新建的类称为派生类(子类)。
父类/基类 -> 子类/派生类
二、如何理解继承
用已有的类构造专用类的编程技术;
比如我们有一个水果类,我们可以又水果类可以派生出苹果、香蕉、橘子等。此时水果类就叫基类(父类),而苹果类就叫派生类(子类)。它们都继承了水果的特性,不过它们在水果类的基础上又增加了自己的特性。所以我们可以理解为:每个派生类都是基类的特殊版本。继承时,子类会将父类所有属性和方法都继承(只不过有权限问题),同时会在父类的基础上新增子类特有的属性和行为或父类接口对子类来说不合适的时候。同时我们也要注意基类(父类)存在的时候,我们才可以继承这个基类(父类),派生出子类。
三、继承的一般形式(语法)
class 父类名
{
类体
}
class 子类名 : 继承权限 基(父)类类名, 继承权限 基(父)类类名,
{
类体
};
继承权限说明:决定子类访问父类成员的权限
public继承://公有继承
protected继承://保护继承
private继承://私有继承
如果没有给出继承方式,那么默认private继承://私有继承
#include <iostream>
using namespace std;
class Base
{
public:
Base(int val = 0):value(val)//构造函数,主要就是完成一些初始化操作。如果不定义,系统也会自动的定义。
{
//setvalue(777);//ok:在父类内部对父类保护成员进行访问
cout << __func__ << ":"<< __LINE__ <<endl;
}
~Base()//析构函数
{
cout << __func__ << ":"<< __LINE__ <<endl;
}
public:
int getvalue()