目录
一、背景
在C++中,继承是面向对象编程的一部分,它允许我们创建一个新类(派生类)从已有的类(基类)继承。通过继承,派生类可以获得基类的属性和方法,同时还可以添加新的属性和方法或重载基类的方法。
二、基本概念
- 基类(Base Class):也称为父类或超类,它是被继承的类。
- 派生类(Derived Class):也称为子类,它是从基类继承而来的类。
2.1、继承的语法
class 基类 {
// 基类的成员
};
class 派生类 : 访问控制 基类 {
// 派生类的成员
};
2.2、访问控制
- public 继承:基类的公有成员和保护成员在派生类中保持其访问权限。
- protected 继承:基类的公有成员在派生类中变为保护成员,保护成员保持不变。
- private 继承:基类的公有成员和保护成员在派生类中都变为私有成员。
#include <iostream>
using namespace std;
// 基类
class Animal {
public:
void eat() {
cout << "Eating..." << endl;
}
};
// 派生类
class Dog : public Animal {
public:
void bark() {
cout << "Barking..." << endl;
}
};
int main() {
Dog myDog;
myDog.eat(); // 基类的方法
myDog.bark(); // 派生类的方法
return 0;
}
2.3、继承的类型
- 单继承:一个派生类继承自一个单一的基类。
- 多继承:一个派生类可以继承自多个基类。
- 多层继承:一个类是另一个类的基类,而这个类又是另一个类的基类,形成继承链。
2.4、虚继承
虚继承用于解决多重继承时的“菱形继承”(Diamond Inheritance)问题。通过虚继承,基类的实例在派生类中只存在一份拷贝。
class A {
public:
int value;
};
cla