浅谈C++的继承与多态(静态绑定、动态绑定和虚函数等)

今天我们来谈谈C++的继承与多态😊😊😊,本篇的关键内容如下:

  • 继承的本质及其原理
  • 派生类的构造和析构过程
  • 重载、隐藏和覆盖
  • 类的向下或向上转型
  • 静态绑定与动态绑定
  • 虚函数对类的影响
  • 虚析构函数

下面,我们将对这几个有关于C++继承与多态的关键内容进行详述的论述

一、继承的本质及其原理

在C++中,继承是一种面向对象编程思想的概念,允许一个类继承另一个类的属性和方法,同时也可以在此基础上添加新的属性和方法。究其本质,即:

  • 代码的复用
  • 在基类中给所有派生类提供一个统一的接口,让派生类重写,满足开闭原则

二、派生类的构造和析构过程

在定义的派生类中,由于派生类是从基类的基础上继承过来的,对应继承而来的成员的初始化和清理是由基类的构造函数和析构函数负责,而派生类的构造和析构函数则负责初始化和清理派生类中特定的部分,所以在派生类调用构造函数需要初始化基类里的成员变量时,不能直接指定,而是需要通过基类的构造函数来进行初始化,如下:

class Base
{
   
   
public:
	Base(int d) :ma(d) {
   
    cout << "Base()" << endl; }
	~Base() {
   
    cout << "~Base()" << endl; }
protected:
	int ma;
};

class Derive :public Base
{
   
   
public:
	//Derive(int d = 20) :ma(d), mb(d) {cout << "Derive()" << endl;}
	//此句会出现报错:"ma" 不是类 "Derive" 的非静态数据成员或基类
	Derive(int d = 20) :Base(d), mb(d) {
   
   cout << "Derive()" << endl;}
	~Derive() {
   
    cout << "~Derive()" << endl; }
private:
	int mb;
};

这里我们给出一段关于派生类构造和析构过程的主要描述:

  • 派生类调用基类的构造函数,初始化从基类继承而来的成员
  • 调用派生类自己的构造函数,初始化派生类自己特有的成员
  • 调用派生类的析构函数,释放派生类成员可能占用的外部资源(堆空间、文件等)
  • 调用基类的构造函数,释放派生类内存中从基类继承而来的成员可以占用的外部资源(堆空间、文件等)
int main()<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leisure-pp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值