为了让类只定义一次便可以在各个文件中使用该类所以类通常被定义在头文件中而且类所在头文件的名字应与类的名字相同。例如库类型string在名为string的头文件中定义。头文件通常包含那些只能被定义一次的实体如类、const和constexpr变量等。头文件也经常用到其他头文件的功能。例如头文件Sales_data.h#includestring struct Sales_data { std::string bookNo; unsigned units_sold0; double revenue0.0; };main文件#includeiostream #includestring #includeSales_data.h int main() { Sales_data data1; data1.bookNo 123-456-789; std::string bookNo1 data1.bookNo; std::cout Book number: bookNo1 std::endl; return 0; }例如我们的Sales_date类包含有一个string成员所以Sales_date.h必须包含string.h头文件。同时使用Sales_date类的程序为了能操作bookNo成员需要再一次包含string.h头文件。这样事实上使用Sales_date类的程序就先后两次包含了string.h头文件一次是直接包含的另一次是随着包含Sales_date.h被隐式地包含进来的。有必要在书写头文件时做适当处理使其遇到多次包含的情况也能安全和正常地工作。为了头文件多次包含仍能安全工作的常用技术是预处理器。预处理器是在编译之前执行的一段程序可以部分地改变我们所写的程序。比如其中一项预处理功能#include当预处理器看到#include标记时就会用指定的头文件的内容代替#include。#头文件一旦改变相关的源文件必须重新编译以获取更新过的声明#其中一项的预处理功能是头文件保护符。头文件保护符依赖于预处理变量。预处理变量有两种状态已定义和未定义。#define指令把一个名字设定为预处理变量另外两个指令则分别检查某个指定的预处理变量是否已经定义#ifdef当且仅当变量已定义时为真#ifndef当且仅当变量未定义时为真。一旦检查结果为真则执行后续操作直至遇到#endif指令为止。使用这些功能就能有效防止重复包含的发生#ifndef SALES_DATA_H #define SALES_DATA_H #includestring struct Sales_data { std::string bookNo; unsigned units_sold0; double revenue0.0; }; #endif第一次包含Sales_data.h时#ifndef的检查结果为真预处理器将顺序执行后面的操作直至遇到#endif为止。此时预处理变量SALES_DATA_H的值将变为已定义而且Sales_data.h也会被#include的预处理拷贝到我们的程序中来。后面如果再一次包含Sales_data.h则#ifndef的检查结果将为假编译器将忽略#ifndef到#endif之间的部分。#预处理变量无视C语言中关于作用域的规则#整个程序中的预处理变量包括头文件保护符必须唯一通常的做法是基于头文件中类的名字来构建保护符的名字以确保其唯一性。为了避免与程序中的其他实体变量拥有类型、作用域、被编译器识别的命名对象发生名字冲突一般把预处理变量的名字全部大写。头文件即使目前还没有被包含在任何其他头文件中也应该设置保护符。为了安全
说中文做一个洗车店会员次卡小程序 结论先摆这儿:给一家洗车店做的「充次卡—扫码核销—余次提醒」小程序,我从张嘴描述需求到能真机核销,前后大概花了两个半小时,没自己写小程序那套代码。全程记录在下面,做类似东西的可以照着抄。 为什么是次卡&#…
Figma AI组件变体深度解析(2024企业级实测报告):准确率92.7%、响应<800ms的变体生成黑盒拆解 更多请点击: https://kaifayun.com 第一章:Figma AI组件变体的核心定位与企业级价值演进 Figma AI组件变体并非简单的自动化设计辅助功能,而是设计系统演进的关键枢纽——它将设计意图、开发约束与业务语义深度融合,在原子化组件…
数据库领域的AI成熟度模型:从Level0手工到Level5完全自治,你的系统在哪一级 数据库领域的AI成熟度模型:从Level0手工到Level5完全自治,你的系统在哪一级 一、每家都说自己做了AI4DB,但水平天差地别 "AI for Database"已经成为数据库产品的标配营销术语。某云厂商的宣传页上说"AI自动优化器"&#…
Python入门指南:环境配置与基础语法详解 1. Python环境安装与配置 对于初学者来说,Python环境的安装是学习编程的第一步。我建议直接从Python官网下载最新稳定版本,目前主流的是Python 3.12.x系列。安装过程中有几个关键点需要注意: 安装时务必勾选"Add Python to PATH"…
Python GUI开发别再自虐了!Tkinter调布局调到你崩溃?Formatio一招拯救你的界面 实话说, 咱们这些从事开发工作的人, 特别是那些刚刚进入这一行没有多长时间的朋友, 最害怕的或许并非编写算法逻辑, 而是去撰写那讨人嫌的GUI界面。 你是否也有过这般遭遇这种“最黑暗时刻”: 费尽周折好不容易完成了一个极其厉害的后端逻辑, 可在给它添加一个外壳(…
线性回归五大假设验证实战:从残差图到稳健推断 1. 这不是“走个过场”,而是模型能否说话的生死线你拟合出一个漂亮的线性回归方程,R高达0.92,p值全小于0.001,连导师看了都点头——但如果你跳过假设检验这一步,那这个模型在统计意义上,本质上就是个“哑巴…
基于YOLO的交通标志识别系统设计与优化 1. 为什么我们需要交通信号标志识别系统?去年夏天,我在一次自驾游中差点错过一个临时施工标志,这个经历让我意识到传统导航系统在实时路况识别上的局限性。交通信号标志识别系统正是为了解决这类问题而诞生的,它能实时分析道路环境…
LM Studio Bionic与GLM 5.2:本地AI编程从代码补全到逻辑理解的跨越 那天下午,我正为一个老项目的代码重构发愁——几百行混杂着业务逻辑和数据处理的Python脚本,像一团纠缠的毛线。就在我准备手动梳理时,同事发来一条消息:“试试LM Studio新出的Bionic功能,直接让GLM 5.2帮你理逻辑。”…
【大纲利器】专业级AI论文网站:研究框架、文献综述一键搭建 每到开题季,无数本硕学子都会陷入同款困境:选题无思路、研究框架逻辑混乱、翻阅上百篇文献仍写不出合格综述、参考文献格式反复出错、熬夜搭建结构却被导师全盘打回。传统手工梳理文献、徒手搭建研究框架的模式耗时耗力,稍有疏漏就会延误开题…
2026年7月最新太原百达翡丽官方售后客服电话及服务网点地址查询 - 百达翡丽官方售后中心 2026年7月,百达翡丽在太原的官方售后服务体系完成更新,客户可通过全国统一客服热线与服务网点获得直接、合规的腕表养护与维修支持。所有售后服务均遵循品牌直营标准,覆盖全国范围,客户可选择到店或邮寄方式,但需…
【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC 可视化利器:JConsole、VisualVM、JMC 实战 本文是《JVM调优实战》专栏第 16 讲。 引言 上一讲我们介绍了 JDK 命令行工具箱,它们轻量、快速,但有一个明显的短板:不直观。面对 jstat -gcutil 输出的一行行数字,你能感知 GC 频率,却难以一眼看出内存泄漏的趋势;你能用 js…
什么是PCTFE?医药高端包装的“防潮王牌“材料 ——日氟荣高分子材料(上海)有限公司 专业深耕氟材料领域很多人好奇,高端药品包装为什么比普通包装更防潮、更稳定、保质期更长?核心秘密,就藏在一种特种氟材料——PCTFE聚三氟氯乙烯里!作为国内领先的氟材…
2026年7月最新太原百达翡丽官方售后客服电话及服务网点地址查询 - 百达翡丽官方售后中心 2026年7月,百达翡丽在太原的官方售后服务体系完成更新,客户可通过全国统一客服热线与服务网点获得直接、合规的腕表养护与维修支持。所有售后服务均遵循品牌直营标准,覆盖全国范围,客户可选择到店或邮寄方式,但需…
【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC 可视化利器:JConsole、VisualVM、JMC 实战 本文是《JVM调优实战》专栏第 16 讲。 引言 上一讲我们介绍了 JDK 命令行工具箱,它们轻量、快速,但有一个明显的短板:不直观。面对 jstat -gcutil 输出的一行行数字,你能感知 GC 频率,却难以一眼看出内存泄漏的趋势;你能用 js…
什么是PCTFE?医药高端包装的“防潮王牌“材料 ——日氟荣高分子材料(上海)有限公司 专业深耕氟材料领域很多人好奇,高端药品包装为什么比普通包装更防潮、更稳定、保质期更长?核心秘密,就藏在一种特种氟材料——PCTFE聚三氟氯乙烯里!作为国内领先的氟材…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…