博客
关于我
C++学习日记2——多态篇的纯虚函数和抽象类
阅读量:532 次
发布时间:2019-03-09

本文共 950 字,大约阅读时间需要 3 分钟。

C++ökning Points: Abstract Classes and Pure Virtual Functions

在面向对象编程中,抽象类和纯虚函数是非常重要的概念。它们帮助我们构建灵活且可扩展的对象模型。以下将详细阐述这些概念。

知识点1: 纯虚函数的定义与制作

纯虚函数是函数申明,没有定义的函数。它们通常以“=0”号结尾,例如:

virtual void func() = 0; // 纯虚函数

纯虚函数具有以下特点:

  • 无定义:没有具体的函数实现。
  • 必须在子类中实现:使用者必须在派生类中提供实现,不能给出实例化对象。

知识点2: 抽象类的概念与性质

抽象类是指含有纯虚函数的类。其核心特征包括:

  • 抽象性:抽象类不能产生实例。
  • 扩展性:子类可以选择是否实现抽象类的成员。
  • 多重继承:支持继承多个接口类和非接口类。

简单来说,不能用new操作符创建抽象类的实例。然而,子类可能通过实现抽象类的纯虚函数而变得可实例化。

知识点3: 接口类的定义与应用

接口类是一个特化的抽象类,其仅包含纯虚函数。其主要作用是:

  • 规范子类行为:确保所有继承自该接口的子类都必须实现特定的方法。
  • 提现接口:通过接口指针,能够调用派生类的纯虚函数。

然而,要注意以下几点:

  • 接口类本身不可实例化。
  • 一个子类可以同时继承多个接口和非接口类。

知识点4: 综合应用与案例

如果你有一个抽象类Shape,其中含有纯虚函数move(),那么你可以创建如下的继承结构:

class Shape {public:    virtual void move() = 0; // 纯虚函数};class Rectangle : public Shape {public:    void move() override { // 实现了纯虚函数        // 移动的逻辑       setUpPosition();        move();        tearDownPosition();    }private:    // 附加功能的实现};

在这个例子中,Shape是一个抽象接口,而Rectangle是其具体的实现。通过这种方式,我们可以将行为分离,并基于接口指针进行操作,从而实现真正的松耦合设计。

转载地址:http://djzsz.baihongyu.com/

你可能感兴趣的文章
Failed to get D-Bus connection: Operation not permitted解决
查看>>
【wp】HWS计划2021硬件安全冬令营线上选拔赛
查看>>
Python 之网络式编程
查看>>
网站故障公告1:使用阿里云RDS之后一个让人欲哭无泪的下午
查看>>
上周热点回顾(6.9-6.15)
查看>>
上周热点回顾(1.23-1.29)
查看>>
Python 简明教程 --- 20,Python 类中的属性与方法
查看>>
稀疏数组
查看>>
83. Remove Duplicates from Sorted List
查看>>
痞子衡嵌入式:串口调试工具pzh-com诞生记(2)- 界面构建(wxFormBuilder3.8.0)
查看>>
Nmap扫描工具介绍
查看>>
Oracle Orion tool check io(ORACLE Orion 工具查看以及校验IO)
查看>>
玩玩小爬虫——试搭小架构
查看>>
Python大神编程常用4大工具,你用过几个?
查看>>
linux kernel version magic 不一致导致的模块 加载 (insmod) 不上
查看>>
centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
查看>>
MySQL 1064 You have an error in your SQL syntax 错误解决办法
查看>>
【Flink】Flink 底层RPC框架分析
查看>>
MySQL错误日志(Error Log)
查看>>
oracle使用DBMS_RANDOM包生成随机数据
查看>>