【C++】抽象类

news2025/1/19 11:32:37

2023年8月25日,周五上午


目录

声明抽象类

抽象类的特点

举例说明


声明抽象类

要在C++中声明一个抽象类,要求类中至少有一个纯虚函数

在C++中,一个类如果包含至少一个纯虚函数,那么这个类就被称为抽象类。

总结起来,抽象类是一个包含至少一个纯虚函数的类。

注意:必须是纯虚函数,不能是虚函数!二者是由区别的。

怎么定义纯虚函数?

在类中使用 virtual 关键字和 = 0 来声明一个纯虚函数。

纯虚函数没有函数体,它只是一个接口,需要在派生类中实现。

怎么定义虚函数?

在类中使用 virtual 关键字来声明一个纯虚函数。

class AbstractClass {
public:
  virtual void pureVirtualFunction() = 0; // 纯虚函数声明
};

抽象类的特点

抽象类不能被直接实例化,只能作为基类来派生其他类。

抽象类的存在主要是为了提供一种接口规范,强制派生类实现特定的功能。这种设计模式有助于实现多态性和代码的可扩展性。

抽象类中定义的纯虚函数必须在派生类中被实现,否则派生类也会成为抽象类且不能被实例化。只有派生类实现了抽象类中的所有纯虚函数才能被实例化。

抽象类可以包含非纯虚函数和数据成员,这些成员可以在派生类中继承和使用。

举例说明

#include<iostream>

class Animal{
public:
	virtual void speak()=0;
};

class Dog{
public:
	void speak(){
		std::cout<<"汪汪"<<std::endl;
	}
};

class Cat{
public:
	void speak(){
		std::cout<<"喵喵"<<std::endl;
	}
};

int main(){
	Dog d;
	d.speak();
	Cat c;
	c.speak();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/925920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

天眼查接口 查询企业信息API 企查查接口

item_get-获得tyc详情 tyc.item_get 公共参数 请求地址: https://api-gw.cn/tyc/item_get 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff0…

板卡设计+硬件每日学习十个知识点(44)23.8.24 (检测单元设计,接口部分设计,板卡电源输入设计,电源检测电路)

文章目录 1.检测单元介绍&#xff08;使用GD32单片机&#xff09;2.GD32的最小系统板3.GD32的温度监测4.GD32的电压监测和电流监测5.GD32的布线6.接口部分设计7.板卡电源输入设计8.电源检测电路 1.检测单元介绍&#xff08;使用GD32单片机&#xff09; 答&#xff1a; 首先要为…

告别gazebo开启长时间等待 设置gazebo打开不再联网找模型

学过ros的对gazebo仿真软件应该都不会陌生&#xff0c;但是有时启动真的很烦人&#xff0c;经常卡在这个地方很长时间&#xff0c;查阅资料 gazebo软件开启的时候会自动从国外官网下载模型&#xff0c;因此这个过程比较漫长&#xff0c;原因是网站在国外&#xff0c;下载不顺畅…

基于大核注意力的高效鲁棒脑损伤分割

文章目录 Large-kernel Attention for Efficient and Robust Brain Lesion Segmentation摘要本文方法实验结果 Large-kernel Attention for Efficient and Robust Brain Lesion Segmentation 摘要 ViT是用于医学图像分割等视觉任务的有效深度学习模型。然而&#xff0c;与卷积…

slowhttptest

压力测试工具 kail-linux安装 apt-get install slowhttptest slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u "http://192.168.3.239:8889" -x 24 -p 3 SlowRead模式 slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u …

用于毒情监测和溯源的自动采样器是哪种

最新多领域采样器的功能升级特点&#xff1a; 1.手机APP 实时观测采样状况、采样量&#xff1b; 2.配置高可靠性蠕动泵&#xff0c;采样过程运行平稳精准&#xff0c;待采集水样全程无与外界接触&#xff0c;防止水样产生污染、破坏&#xff1b; 3.可设置全自动样品采集&#x…

Windows逆向项目-LoadPE

Windows逆向项目-LoadPE 这是PE阶段时&#xff0c;老师布置的作业&#xff1a;[ 写一个LordPE ]&#xff1b;木马&#xff0c;免杀&#xff0c;病毒等等都需要对PE结构有足够的了解PE结构详细图&#xff1a; 项目介绍&#xff1a; 项目使用 C &#xff0c; MFC 开发 功能&am…

JAVA 单线程、多线程测试百度网址

JAVA 单线程、多线程访问百度 单线程示例代码多线程示例代码 单线程示例代码 package org.apache.jmeter.functions; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.U…

YOLO目标检测——野生猫科动物图像数据集(虎豹狮等)下载分享

野生猫科动物图像数据集是一个包含了各种野生猫科动物图像样本的数据集&#xff0c;例如狮子、老虎、豹子、猎豹、美洲豹等。这些数据集通常用于研究和分析野生猫科动物的图像识别、分类、行为分析等问题。 数据集点击下载&#xff1a;YOLO野生猫科动物图像数据集&#xff08;虎…

无涯教程-Python - 多线程

运行多个线程类似于同时运行多个不同的程序&#xff0c;但具有以下优点- 一个进程中的多个线程与主线程共享相同的数据空间&#xff0c;因此比起单进程&#xff0c;它们可以更轻松地共享信息或彼此通信。有时称为轻量级进程的线程&#xff0c;它们不需要太多的内存开销。 开始…

【TI毫米波雷达笔记】CCS雷达工程内存RAM指定(DATA_SECTION,以IWR6843AOP为例)

【TI毫米波雷达笔记】CCS雷达工程内存RAM指定&#xff08;DATA_SECTION&#xff0c;以IWR6843AOP为例&#xff09; 工程建立好以后会有一个cmd文件 此文件描述的是内存map /*----------------------------------------------------------------------------*/ /* r4f_linker…

FMT正式版,发布倒计时!

FMT&#xff08;全称Firmament Autopilot&#xff09;是首个基于模型设计的开源自驾仪系统。自2016年立项以来的近七年的时间里&#xff0c;FMT持续完善&#xff0c;经过了数千次Commit。 今天&#xff0c;我们带着骄傲和喜悦跟大家宣布&#xff0c;FMT正式版v1.0.0马上就要发…

RK3568开发板-RKDevTool 常用功能-模式切换

例如&#xff0c;烧写工具“发现一个 ADB 设备”&#xff0c;如下图所示&#xff1a; 点击切换选项&#xff0c;可以进到进入 Loader 或者 Maskrom 模式&#xff0c;这俩种模式均可进行烧写。 更多内容可以搜索哔哩哔哩-北京迅为RK3568开发板

redis7高级篇3 数据量亿级别的统计分析(hyperloglog,bitmap,geo)

一 亿级别统计分类 1.1 统计分类 1.聚合统计&#xff1a;统计多个集合聚合的结果&#xff0c;也就是多个集合之间交并差的统计。 2.排序统计&#xff1a;在需要展示最新列表&#xff0c;排行榜等场景时&#xff0c;如果数据更新频繁或者需要分页时&#xff0c;建议使用zset12…

自动化测试之Junit

Junit引入注解参数化单参数多参数方法传参 测试用例执行顺序断言测试套件 Junit引入 Junit来编写和组织自动化测试用例&#xff0c;使用Selenium来实际模拟用户与Web应用程序的交互。也就是使用JUnit的测试功能来管理和运行Selenium测试。常见的做法是&#xff0c;使用JUnit作…

mysql 字符集、比较规则, 比较规则底层逻辑

字符集的级别 show variables like ‘%charecter%’&#xff1b; character_set_server 服务器级别 一般在 5.7&#xff1a; C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 8.0&#xff1a; C:\ProgramData\MySQL\MySQL Server 5.7\my.ini Linux 系列 vim /etc/my.cnf chara…

stm32之19.温湿度模块(待补充)

dth11.c文件① #include "dht11.h" #include "delay.h"// 1、温湿度模块初始化(PG9) void Dht11_Init(void) {// 0、GPIO外设信息结构体GPIO_InitTypeDef GPIO_InitStruct;// 1、使能硬件时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);//…

微调Llama2自我认知

一、概述 最近在学习了解大模型微调相关的内容&#xff0c;在学习的过程中也遇到了很多问题&#xff0c;所以将自己的学习过程记录下来&#xff0c;希望对大模型微调感兴趣的小伙伴提供一点帮助&#xff0c;本文主要介绍一下如何通过SFT微调Llama2的自我认知&#xff0c;先看一…

最新PHP短网址生成系统/短链接生成系统/URL缩短器系统源码

全新PHP短网址系统URL缩短器平台&#xff0c;它使您可以轻松地缩短链接&#xff0c;根据受众群体的位置或平台来定位受众&#xff0c;并为缩短的链接提供分析见解。 系统使用了Laravel框架编写&#xff0c;前后台双语言使用&#xff0c;可以设置多域名&#xff0c;还可以开设套…

语音芯片国产品牌—认准“深圳唯创知音”语音IC方案商,稳定可靠

​随着科技的飞速发展&#xff0c;语音技术正逐渐渗透进入我们生活的方方面面&#xff0c;从智能助手到智能家居&#xff0c;从汽车到工业设备&#xff0c;语音成为了人机交互的一种重要方式。而在这个充满激烈竞争的领域里&#xff0c;深圳唯创知音作为语音芯片领域的领军品牌…