上篇聊了多态与虚函数,今天深入一步——纯虚函数和抽象类。这两个概念在面试里考得特别多,特别是面试官让你设计一个系统的时候。如果你能用抽象类把接口定义清楚,面试官会觉得你有架构思维。讲个面试场景。面试官说:"请你设计一个传感器管理系统,支持激光雷达、相机、IMU等多种传感器,你怎么设计?"不少人上来就写具体的类,激光雷达一个类,相机一个类。面试官追问:"如果以后要加新的传感器类型呢?每个都写一套?"这时候就轮到抽象类出场了。纯虚函数:只有声明没有实现的虚函数先回忆一下虚函数。虚函数用virtual声明,有具体的实现,子类可以重写也可以不重写。纯虚函数呢?只有声明,没有实现,后面跟个= 0:class Sensor { public: virtual void init() = 0; // 纯虚函数 virtual void calibrate() = 0; // 纯虚函数 virtual double getValue() const = 0; // 纯虚函数 };注意那个= 0,它不是让函数返回0,而是告诉编译器"这是纯虚函数"。有纯虚函数的类就叫抽象类。抽象类有个硬性规定:不能创建对象。Sensor s; // 编译错误!抽象类不能实例化为什么不能?因为纯虚函数没有实现,如果允许创建对象,调用纯虚函数的时候就会出错。编译器直接从源头禁止了这种行为。抽象类的作用:定义接口规范抽象类的核心
纯虚函数与抽象类:面试官问“接口怎么设计”,这样答直接加分
上篇聊了多态与虚函数,今天深入一步——纯虚函数和抽象类。这两个概念在面试里考得特别多,特别是面试官让你设计一个系统的时候。如果你能用抽象类把接口定义清楚,面试官会觉得你有架构思维。讲个面试场景。面试官说:"请你设计一个传感器管理系统,支持激光雷达、相机、IMU等多种传感器,你怎么设计?"不少人上来就写具体的类,激光雷达一个类,相机一个类。面试官追问:"如果以后要加新的传感器类型呢?每个都写一套?"这时候就轮到抽象类出场了。纯虚函数:只有声明没有实现的虚函数先回忆一下虚函数。虚函数用virtual声明,有具体的实现,子类可以重写也可以不重写。纯虚函数呢?只有声明,没有实现,后面跟个= 0:class Sensor { public: virtual void init() = 0; // 纯虚函数 virtual void calibrate() = 0; // 纯虚函数 virtual double getValue() const = 0; // 纯虚函数 };注意那个= 0,它不是让函数返回0,而是告诉编译器"这是纯虚函数"。有纯虚函数的类就叫抽象类。抽象类有个硬性规定:不能创建对象。Sensor s; // 编译错误!抽象类不能实例化为什么不能?因为纯虚函数没有实现,如果允许创建对象,调用纯虚函数的时候就会出错。编译器直接从源头禁止了这种行为。抽象类的作用:定义接口规范抽象类的核心
相关文章
无人机航拍与三维建模在交通事故勘察中的应用
1. 项目背景与行业痛点城市道路交通事故现场勘察是交管部门的核心工作之一,传统人工勘察方式存在三大痛点:一是现场数据采集效率低,平均每起事故需要30-50分钟;二是二维平面图难以还原三维空间关系,约67%的案例存在测量…
ROS 2 Adopters项目登记:YAML表单背后的工程可信度与生态协作机制
1. 项目概述:为什么一个“加项目”表单值得写满五千字?你点开这个页面,看到的是一段极其朴素的说明文字——没有炫酷动效,没有交互引导,甚至没有一张截图。它就安静地躺在 ROS 2 官方文档的 Adopters(采用者…
前端性能优化:让 HTML 加载更快
引言:为什么 HTML 加载速度至关重要在当今的 Web 体验中,速度即生命线。用户对页面加载的耐心通常只有几秒钟,而 HTML 作为页面的骨架和入口,其加载速度直接决定了用户的第一印象和后续交互的流畅度。一个加载缓慢的 HTML 文档&am…
OpenNote-Compose 性能优化技巧:提升大型笔记应用的流畅度
OpenNote-Compose 性能优化技巧:提升大型笔记应用的流畅度 【免费下载链接】OpenNote-Compose Markdown Editor & Notebook for Android built with Jetpack Compose. 项目地址: https://gitcode.com/gh_mirrors/op/OpenNote-Compose OpenNote-Compose 是…
开发者必看:Kokoro-82M-onnx-opt的Tokenizer与Phonemizer工作原理
开发者必看:Kokoro-82M-onnx-opt的Tokenizer与Phonemizer工作原理 【免费下载链接】kokoro-82M-onnx-opt 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/kokoro-82M-onnx-opt Kokoro-82M-onnx-opt是一款高效的语音处理工具,其核心功能在于…
Unity数据可视化实战:XCharts核心功能与性能优化指南
1. 项目概述:为什么Unity开发者需要XCharts?如果你正在用Unity做游戏、做应用,或者开发任何需要展示数据的交互式内容,那么“数据可视化”这个需求几乎无法绕过。无论是游戏里的角色属性面板、排行榜,还是应用中的数据…
如何利用NVIDIA Kimi-K2.7-Code-NVFP4的强大工具调用与Agent能力
如何利用NVIDIA Kimi-K2.7-Code-NVFP4的强大工具调用与Agent能力 【免费下载链接】Kimi-K2.7-Code-NVFP4 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Kimi-K2.7-Code-NVFP4 NVIDIA Kimi-K2.7-Code-NVFP4是一个专为NVIDIA GPU优化的量化语言模型,具…
如何为Win10 Hyper-V虚拟机配置网络与存储以优化性能
1. Hyper-V网络配置基础在Windows 10中使用Hyper-V创建虚拟机后,网络配置是第一个需要解决的问题。Hyper-V提供了三种虚拟交换机类型:外部、内部和专用。每种类型适用于不同的场景,理解它们的区别对优化虚拟机性能至关重要。外部虚拟交换机是…
Run-On-Arch GitHub Action版本升级指南:从v2到v3的迁移教程 [特殊字符]
Run-On-Arch GitHub Action版本升级指南:从v2到v3的迁移教程 🚀 【免费下载链接】run-on-arch-action A Github Action that executes jobs/commands on non-x86 cpu architectures (ARMv6, ARMv7, aarch64, s390x, ppc64le, riscv64) via QEMU 项目地…
元初混沌物理 108 篇 第八十八篇星气落地物化定则
89. 星气落地物化定则一、核心总纲七星依托引力气运沿六合时空轨道向下传导,穿透天地时空结界,沉降至人域、地域地层,转化为地表五行气源,驱动山川、草木、流体、矿质持续演化,完整界定星气落地物化定则,打…
北京华恒智信破解国企竞聘能上不能下成功案例
【客户行业】文旅行业【问题类型】人才培养【客户背景】随着国家住建部对产业分类标准的不断完善,特色小镇作为其中一类标准受到越来越多的关注。在文旅行业蓬勃发展的大背景下,国家提倡特色小镇向“强调文化IP”方向发展,倡导跨界融合&#…
STM32与ICM-42605实现6DOF姿态解算实战
1. 项目背景与核心需求在智能硬件和物联网设备快速发展的今天,精确追踪物体在三维空间中的运动和方向成为了许多应用场景的基础需求。无论是无人机飞控、VR/AR设备姿态感知,还是工业自动化中的运动检测,都需要高精度的6自由度(6DO…
MQ-2 烟雾传感器 ESP32-S3 驱动实战:ADC 读取与阈值校准 3 步完成
MQ-2 烟雾传感器 ESP32-S3 驱动实战:ADC 读取与阈值校准 3 步完成在智能家居和工业安全监测领域,烟雾检测是一个至关重要的环节。MQ-2 作为一款高性价比的半导体烟雾传感器,因其对多种可燃气体(如液化气、丙烷、氢气等)…
SPEC CPU 2006 v1.0.1 基准测试实战:ARM/X86/MIPS 三平台配置与 3 轮测试结果解读
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
每天60s读懂世界:2026年7月11日重点要闻解读
🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》《WINDOWS教程》 《Windows PowerShell 实战》 《人工智能实战合集》《超简单:用Python让Excel飞起来》🌟…
FAE放射组学分析工具:医学影像特征探索的完整解决方案
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
0.69B参数实现中文多模态AI:揭秘Qwen3-SmVL模型融合技术的完整实战指南
0.69B参数实现中文多模态AI:揭秘Qwen3-SmVL模型融合技术的完整实战指南 【免费下载链接】happy-llm 📚 从零开始构建大模型 项目地址: https://gitcode.com/GitHub_Trending/ha/happy-llm 还在为大型多模态模型动辄数十亿参数、显存占用高而烦恼&…
解锁AMD Ryzen处理器性能潜力的SMU调试神器:从新手到专家的完整指南
解锁AMD Ryzen处理器性能潜力的SMU调试神器:从新手到专家的完整指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址…