【QT】-一文读懂抽象类

ops/2025/3/15 0:08:53/

抽象类(Abstract Class)是面向对象编程中的一个概念,指的是无法被实例化的类,它通常作为其他类的基类。抽象类的作用是定义一个接口(或约定),让派生类(继承自抽象类的类)来实现具体的功能。

抽象类的特点:
包含纯虚函数(Pure Virtual Function): 抽象类通常包含一个或多个纯虚函数,这些函数在抽象类中没有实现,必须由派生类来实现。纯虚函数的声明方式是:在函数声明的末尾加上 = 0。

例如:

cpp

class Shape {
public:
// 纯虚函数
virtual void draw() = 0;
};
在上面的代码中,Shape 是一个抽象类,包含一个纯虚函数 draw()。因为 draw() 是纯虚函数,所以 Shape 类不能直接实例化。

无法实例化: 由于包含纯虚函数,抽象类不能直接被实例化。也就是说,无法创建一个抽象类的对象。你只能通过创建其派生类的对象来使用它。

cpp

Shape shape; // 错误:无法实例化抽象类
可以包含已实现的函数: 抽象类不仅可以包含纯虚函数,还可以包含已经实现的普通函数。派生类可以选择是否重写这些普通函数。

class Shape {
public:
virtual void draw() = 0; // 纯虚函数

// 已实现的函数
void move() {std::cout << "Moving the shape" << std::endl;
}

http://www.ppmy.cn/ops/165796.html

相关文章

Linux 使用 docker 安装 Gogs 公司私有 Git 仓库

Gogs 简介 Gogs&#xff08;Go Git Service&#xff09;是一个用 Go 语言编写的自托管 Git 服务&#xff0c;类似于 GitHub 或 GitLab&#xff0c;但更轻量、易于部署和使用。Gogs 的目标是提供一个简单、快速且低资源占用的 Git 服务&#xff0c;适合个人开发者、小团队或企业…

LeetCode Hot100刷题——对称二叉树

101.对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false提示&#xff1a; 树…

STM32全系大阅兵(2)

接前一篇文章:STM32全系大阅兵(1) 本文内容参考: STM32家族系列的区别_stm32各个系列区别-CSDN博客 STM32--STM32 微控制器详解-CSDN博客

《大语言模型》学习笔记(一)

一、什么是大语言模型 大语言模型是指在海量无标注文本数据上进行预训练得到的大型预训练语言模型&#xff0c;例如GPT-3&#xff0c;PaLM和LLaMA。大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;是一种基于深度学习的自然语言处理模型&#xff0c;能…

modbusrtu.h:5:10: error: ‘QSerialPort‘ file not found

解决 QSerialPort 头文件未找到的问题: 1. 确保已安装 Qt Serial Port 模块 QSerialPort 属于 Qt Serial Port 模块,需先确认已安装该模块。 安装步骤: 打开 Qt Maintenance Tool: 在开始菜单搜索并打开 Qt Maintenance Tool 选择当前安装的 Qt 版本,点击 “添加或移除…

Elasticsearch 7.x入门学习-系统架构与工作流程

1 核心概念 1.1 索引&#xff08;Index&#xff09; Elasticsearch 索引的精髓&#xff1a;一切设计都是为了提高搜索的性能。 一个索引就是一个拥有相似特征的文档集合。比如说&#xff0c;你可以有一个客户数据的索引&#xff0c;另一个产品目录的索引&#xff0c;还有一个…

第十五届蓝桥杯大学B组(握手问题、小球反弹、好数)

一、握手问题 思路1&#xff1a; 1)先让所有人相互握手 第一个人49次 第二个人48次 第五十个人0次 共计01249 2)减去7个没握手的 016 #include<stdio.h> int main() {int a 50*49/2 - 7*6/2;printf("%d\n",a);return 0; } 运行结果&#xf…

【QT】-解析打包json

在 Qt 中&#xff0c;接收到 JSON 字符串后&#xff0c;可以通过 QJsonDocument 来解析 JSON 数据&#xff0c;获取字段值。同时&#xff0c;可以使用 QJsonDocument 将数据打包成 JSON 字符串&#xff0c;然后发送到 RabbitMQ 或其他地方。这个方法在 Qt 中非常常见且稳定。 …