C++继承
继承
继承是实现代码重用的重要手段,继承是利用已存在的类的形式,在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,成为派生类。
命名形式为
class 派生类 : 访问修饰符 基类
这个访问修饰符就是继承方式——public , private 或 protected。
举个例子:
class Son:public Father{
};
访问控制与继承
派生类继承基类的非私有数据和函数,继承可以调用基类的函数实现自己的函数。因此基类成员如果不想被派生类的成员函数访问,则应在基类中声明为 private。
通过不同访问权限可总结出不同访问类型如下:
同个类可访问所有类型成员;
派生类可访问公有与保护成员,不可访问私有成员;
外部类只可访问公有成员,不可访问私有成员与保护成员;
如果在派生类中重新定义了基类成员,则自派生类调用时以派生类中的定义为准。
一个派生类继承基类的所有方法但不包括:
构造、析构、拷贝构造函数,重载运算符,友元函数。
继承类型
当一个类派生自基类,该基类可以被继承为 public、protected 或 private 几种类型。继承类型是通过访问修饰符来指定的。
一般情况只使用公有继承public。
当使用不同类型的继承时,有以下几个规则:
公有继承:当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
保护继承: 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。
私有继承:当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。
多继承
一个派生类是可以继承多个基类的
语法如下
class 派生类 : 继承方式1 基类1 , 继承方式2 基类2...
举个例子:
class Son : public Father ,public Mother{
};
根据以上总结写个简单示例:
#include<iostream>
using namespace std;
class Plus {
protected:
int a = 10;
int b = 15;
public:
int plus() {
return a + b;
}